问题标签 [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 回答
82 浏览

c - 在“for”条件下声明的变量的范围是什么?

这是有效的 C 代码吗?i的范围是什么?

0 投票
1 回答
2864 浏览

c - 枚举值是在预处理时还是在编译时解析的?

枚举值何时解析?换句话说,以下代码片段是否符合标准?

0 投票
3 回答
1256 浏览

c - 根据 C11,什么是“字节”?

来自 C11 标准草案,第 1 节第 3 节:

3.6
字节:数据存储的可寻址单元,大到足以容纳执行环境的基本字符集的任何成员

注 1可以唯一地表示对象的每个单独字节的地址

那么,当我得出标准仅针对字节可寻址内存架构的结论时,我是否正确解释了这一点?还是我以不正确的方式阅读它?

0 投票
5 回答
7953 浏览

c - 铿锵 c11 threads.h 未找到

我正在尝试在 xcode 中设置一个 c11 线程示例...但它似乎没有threads.h 标头,尽管它并不抱怨此处描述的宏:
http://www.open-std。 org/jtc1/sc22/wg14/www/docs/n1570.pdf

__STDC_NO_THREADS__整数常量1,意在表示实现不支持<threads.h>头。

显示方言 显示错误

0 投票
4 回答
85136 浏览

c - 如何在更高版本的 gcc 上启用 c11?

我目前使用gcc 4.6.3. 我的理解是gcc默认情况下使用gnu89标准,我想启用最新的 C 标准 C11。我试过:

我替换c11gnu11,我得到了同样的错误。为 gcc 启用最新 C 标准的正确方法是什么?

(注意:我对最新的 C 标准感兴趣,而不是最新的 C++ 标准。)

0 投票
1 回答
239 浏览

c - “符合标准的编译器可以选择不实现非规范化浮点数”的意义是什么?

ISO/IEC 9899:2011 §5.2.4.2.2 ¶10 (p48) 说:

次正规数的存在或不存在由实现定义的FLT_HAS_SUBNORMDBL_HAS_SUBNORMLDBL_HAS_SUBNORM值来表征:

-1 不确定
0 不存在(类型不支持次正规数)
1 存在(类型确实支持次正规数)

什么!所以在某些平台上我不能写double d = 33.3?或者编译器会自动将其转换为333E-1? 非归一化浮点数的存在或不存在的实际意义是什么?

0 投票
2 回答
1896 浏览

c - 什么是 C 中的复合类型?

从第6.2.7.5 节(第 66 页)开始:

示例给定以下两个文件范围声明:

函数的结果复合类型是:

在上面的例子中,他们解释了复合类型是一种类型,兼容两种不同的类型。我会直观地将“复合类型”这个短语理解为“结构和联合”的意思,这似乎是偏离目标的。

什么是 C 中的复合类型,它的用途是什么?有人可以详细解释上面的例子吗?

0 投票
1 回答
550 浏览

c - _泛型和具有多个参数的函数

_Generic我在 Wikipedia 上阅读了这个 C11 的示例:

似乎很清楚如何将它用于只有一个参数的函数,但我看不到用这个系统编写具有两个(或更多)泛型参数的函数的方法。怎么可能?

如果某些编译器支持此功能,我会尝试一些事情,但我也找不到,所以我无法找到有关如何做到这一点的任何想法。

0 投票
1 回答
41 浏览

c - 左值转换过程中,&为什么这么特别和| 从来没有提到过?

6.3.2.1节(第 72 页)解释说

  • Anlvalue表示一个对象,即一块内存。
  • 在表达式求值期间,对象被转换为它们的值,即不再是对象。值得注意的例外是=, &, ., ++, --,的左操作数sizeof
  • 数组通常转换为指向其第一个元素的常量指针。同样的操作数&是一个例外。
  • 函数被隐式转换为指向函数的指针。一元的目标除外&

为什么一元&如此特别?为什么|从来没有提到一元?

0 投票
1 回答
314 浏览

c - 使用 MinGW 将旧 C99 程序转换为 C11

我正在尝试将用 C99 编写的旧程序转换为 C11 以使用 MinGW 编译。我在这里遇到了这行代码

和这段代码

我不习惯c99。它在哪里说 [/size] 和 [/i] 是那些旧的 c99 语法还是只是有人写错了代码?

我也在使用 MinGW 的 -std=c99 切换。