问题标签 [c11]

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 投票
1 回答
253 浏览

c - 标准中关于指针比较的奇怪措辞

§6.5.8\6(关于 >、<、<=、>=)

如果表达式 P 指向数组对象的一个​​元素,而表达式 Q 指向同一数组对象的最后一个元素,则指针表达式 Q+1 比较大于 P 。在所有其他情况下,行为是未定义的。

上面的几个部分,第 6.5.8 节,解释了基本上,指针算术在数组上按预期工作。那int a[3]; int *p = a; int *q = &a[2]; //q-p == 3是有效的。但是,正如我所读到的,上面q > p是UB。

我错过了什么?

0 投票
1 回答
273 浏览

c - 这个常量表达式是如何计算的?

在解释常量表达式时,标准(好吧,草案N1570)给出了这个“启发”的例子:

118)
因此,在下面的初始化中,
static int i = 2 || 1 / 0;
该表达式是一个有效的整数常量表达式,值为 1。

这个表达式是如何计算的?

0 投票
2 回答
2504 浏览

c - 是否需要对 C11 中的附录 K 的支持才能实现符合要求?

回答使用一些我认为不是标准 C 的函数 (sscanf_ssprintf_s) 的问题时,Daniel Fischer 提请我注意,这些函数在附录 K 中定义。

我普遍理解规范意味着它有助于定义标准。但是,传统上,C 标准的附件仅被视为提供信息。附录 K 在 C11 标准中被标记为规范性的。它定义了“安全”功能。

这是否意味着不提供这些函数的编译器不符合 C11 标准?

我只有 C11 标准草案,但它声明附件 K 是规范性的,但标准的库部分没有提及附件 K 中讨论的功能。运行时约束定义中的注释似乎暗示附件 K 定义了一个扩展。

规范性附件是否仅定义可选扩展?

0 投票
1 回答
1397 浏览

c++ - 使用 g++ 编译 C 代码:无效转换

我正在用 g++ 编译 c 代码并在一些问题中运行。修复指定的初始化程序后,我留下了这个错误:

这是我的代码:

任何解决此问题的帮助表示赞赏!谢谢!

0 投票
2 回答
1850 浏览

c - C99 - 用于假人的 vscanf?

很抱歉以如此一般的信息请求打扰 SO。

我可以找到很多非常术语繁重的 vscanf 定义——但是除了 IBM 信息中心网站上的这个相当不错的例子之外,我找不到太多具体的例子来展示函数返回的内容:

http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=%2Frtref%2Fvscanf.htm

但是,此示例仅适用于单行字符串输入,而我正在尝试做同样的事情,但是从具有多行的 .txt 文件中读取。

我是否必须使用 fgets() 一次读取一行然后使用 vscanf?我是否必须在函数中使用它,就像 IBM 信息中心示例所做的那样,将它放在函数 vread() 中?

我是 CS 一年级的学生,但这不是作业的问题,我只是想做一些额外的工作并扩展我的知识,我们还没有到 vread/vscanf。

我应该坚持使用 sscanf 吗?如果这太愚蠢了,我很抱歉。

PS 我喜欢学习 C。我在这个星球上的 31 年中作为一名学生获得了最大的乐趣,除了我曾经和一些来自 RSC 的人一起参加莎士比亚研讨会。

0 投票
5 回答
8548 浏览

c - C11 中多参数 C 函数的泛型

我了解单参数函数的 C11 泛型,如下所示:(从这里

但是,对于有两个参数的函数来说,这似乎很痛苦,你需要嵌套调用 to _Generic,这真的很难看;摘自同一博客:

有没有办法为多参数函数提供更多人类可读的泛型,例如:

提前感谢您的回复。基本思想是为_Generic.

0 投票
3 回答
2409 浏览

c - C 编程语言的运算符优先级表

列出 C 语言中所有运算符的正确运算符优先级表是什么样的?

我在网上进行了广泛的搜索,发现了许多这样的优先级表。唉,我还没有找到一个满足这些要求的人:

  • 列出ISO 9899:2011 中定义的 C 语言中的所有运算符,不混入任何 C++ 运算符。
  • 按完整且正确的优先级顺序列出运算符。
0 投票
1 回答
1618 浏览

c - C11 compiler conformance comparison

Was there any site that compares the current C11 standard conformance/support between implementation/compilers? (gcc, clang, intel, open64, pelles)

0 投票
1 回答
1915 浏览

c - C99 中那些奇怪的数组大小 [*] 和 [static] 是什么?

显然,以下函数原型在 C99 和 C11 中有效:

那些奇怪的下标符号 , 和 CV 限定符的目的是*什么static

它们是否有助于区分静态类型数组和可变长度数组?还是它们只是语法糖?

0 投票
3 回答
1103 浏览

c - 如何计算有符号位域的最大支持值?

假设我的项目包含来自 3rd 方库的标头,其中包含以下内容:

如果不假设位字段的宽度始终为 4,并且不依赖于实现定义的行为,我如何确定可以存储在 member 中的最大值x