问题标签 [specifier]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
14 回答
27841 浏览

c++ - 我应该在 C++ 中使用异常说明符吗?

在 C++ 中,您可以通过使用异常说明符来指定函数可能会或可能不会抛出异常。例如:

由于以下原因,我对实际使用它们表示怀疑:

  1. 编译器并没有真正以任何严格的方式强制执行异常说明符,因此好处并不大。理想情况下,您希望得到一个编译错误。
  2. 如果一个函数违反了异常说明符,我认为标准行为是终止程序。
  3. 在 VS.Net 中,它将 throw(X) 视为 throw(...),因此对标准的遵守并不强。

你认为应该使用异常说明符吗?
请回答“是”或“否”,并提供一些理由来证明您的回答是正确的。

0 投票
1 回答
490 浏览

c - NSLog中int的字节顺序(字节序)?

NSLog 函数接受 printf 格式说明符。我的问题是关于 %x 说明符。这是否将十六进制代码打印为内存序列?还是它有自己的打印顺序样式?

以上代码在小端或大端处理器上的结果是相同还是不同?那么 NSString 的 -initWithFormat 方法呢?它是否同样遵循这个规则?

0 投票
1 回答
10107 浏览

c++ - 错误 C3646:“关闭”:未知的覆盖说明符

我收到以下错误:

编码:

你知道我为什么会出现这个错误吗?

0 投票
2 回答
577 浏览

list - 之前的预期说明符限定符列表

我有以下 Objective-C 标头:

当我尝试构建项目时,Xcode (v4) 对我大喊大叫,说Expected specifier-qualifier-list before GameControllerand unknown type name 'Menu'. 我确定它们在某种程度上是相关的,但我不知道如何?

0 投票
3 回答
7498 浏览

c++ - 缺少类型说明符 - C++ 中假定为 Int

这些第二行引发了这个错误,但我不知道为什么。

--

这是我的整个文件:

0 投票
4 回答
197 浏览

c - 关于 C 参数提升的问题

好吧实际上我已经研究了如何使用循环来使我的代码更高效,这样我就可以使用应该重复的特定代码块而无需一遍又一遍地输入它,并且在尝试使用我学到的东西之后编程太远了,我觉得是时候进入下一章学习如何使用控制语句来学习如何指示程序做出决定了。

但问题是,在我推进自己之前,我还有一些问题需要任何专家帮助解决以前的问题。实际上它是关于数据类型的。


A. 字符类型

  1. 我从 C 入门书 Plus 5th ed 中提取以下内容:

有点奇怪的是,C 将字符常量视为类型int而不是 char. 例如,在具有 32 位int和 8 位的 ASCII 系统上char ,代码:

表示'B'为存储在 32 位单元中的数值 66,grade 以 66 存储的 ub ab 8 位单元结束。字符常量的这一特性使得定义一个字符常量成为可能,例如'FATE',在一个 32 位单元中存储四个单独的 8 位 ASCII 代码。但是,尝试将这样的字符常量分配给char变量会导致仅使用最后 8 位,因此变量会获取值'E'

  1. 因此,我在阅读完这篇文章后做的下一件事当然是按照它提到的内容进行操作,即我尝试将单词存储在FATE变量中char grade并尝试编译并查看将使用 存储printf()的内容,而不是'E'打印字符出来,我得到的是'F'

  2. 这是否意味着书中有一些错误?或者有什么我误解了吗?

  3. 从上面的句子中,有一行说 C 将字符常量视为 type int。因此,为了尝试一下,我为该类型分配了一个大于255, (ex 356) 的数字char

  4. 由于356在 32 位范围内int(我正在运行 Windows 7),因此我希望356在使用说明符时它会打印出来%d

  5. 但它不是打印356,而是给我100,这是最后 8 位值。

  6. 为什么会这样?我想char == int == 32-bits?(虽然它确实在 char 只是一个字节之前提到)。


B. Int 和 Floating 类型

  1. 我知道当short类型变量中的数字存储传递给可变参数函数或任何隐式原型函数时,它将自动提升为int类型。

  2. 浮点类型也会发生这种情况,当传递带有类型的浮点数时float,它将被转换为double类型,这就是为什么没有float类型说明符而只有%ffordouble%Lffor 的原因long double

  3. 但是为什么有一个short类型说明符,虽然它也被提升但不是float类型?为什么他们不只是给float带有修饰符之类的类型的说明符%hf?这背后有什么逻辑或技术吗?

0 投票
4 回答
1661 浏览

c++ - C++ 对于哪些类型,参数类型名称可以与带有类型说明符的参数名称相同?

这个问题需要解释一下,抱歉。我正在修复 doxygen 解析一些 C++ 代码时的疏忽,我遇到了一个不寻常的极端情况,doxygen 没有解决这个问题。我有一个修复,但我想让它更通用,所以我需要一些解释。

为了说明 doxygen 失败的情况,我将定义一个涉及辛普森一家的人为示例(因为这似乎对这类问题很受欢迎)。假设我们有以下枚举:

现在我们想将枚举值传递给一个方法(自然是 Simpsons 类的),如下所示:

不幸的是,这会产生编译器错误,因为枚举类型“simpson”不允许与参数名称“simpson”相同(与 C# 中的不同)。但是,C++ 对此有一个答案。您将 enum 关键字放在类型名称的前面,如下所示:

代码现在将编译并运行。不幸的是,doxygen 没有考虑这种情况,因此它将整个字符串“enum simpson simpson”视为没有参数名称的参数类型。在像上面这样的枚举的情况下,我想出了一些代码来修复 doxygen。

我的问题是,这种技巧适用于哪些其他类型?struct?、union?、typedef?、其他?就此而言,“与参数名称同名的方法参数的类型说明符”概念是否有名称,以便我可以获得更多详细信息?

0 投票
1 回答
386 浏览

objective-c - 错误前的预期说明符限定符列表

我在“NotepadViewController * _notepadVC;”上收到错误“NotepadViewController 之前的预期说明符限定符列表” 我已经导入了那个类的标题,所以它应该把它检测为一种类型,对吧?

0 投票
3 回答
5543 浏览

c - 声明说明符中有两种或多种数据类型

我环顾四周并尝试了一些东西,目前没有任何效果。

我的代码差不多就是这个(我已经把所有的东西都注释掉了,所以它不是别的东西+除此之外没有其他文件);

主文件

主程序

东西.c

0 投票
2 回答
2202 浏览

c - C 语言:如何访问 printf 格式字符串中的各个格式说明符?

我有一个格式字符串char *format = "hello %d world %d"和一个数组int array[2] = {10, 20};。这只是为了举例,要在数组中打印的值的数量可以是任意的,一个最大大小的数组,其中包含要打印的值的数量。( int array[MAX]; int array_count)。

所以很明显我不能使用这个标准prinf(format, ..)。所以我想的是,我将遍历格式字符串,并从中提取一个只有一个格式说明符的子字符串,然后使用printf(sub-string, array[index]);子字符串并将其推进到下一个格式说明符——就像 printf 在内部所做的那样。

所以我很想知道是否有任何给定打印格式字符串的库将返回该字符串中第一个格式说明符的偏移量,以便为我节省一些工作?