问题标签 [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.
c - 可选 C11 Annex K 函数的手册页
由于 C11 引入了一些新功能,例如
如何在 Ubuntu 12.04 上找到这些函数的手册页?
c - C中printf()中的大字段宽度
C 标准是否为下面的程序提供任何借口不在其标准输出上产生千兆字节的空间?
在 Mac OS X 10.8 和 Linux 上测试,我得到x 42x
.
C11 标准说 (7.21.6.1:4):“可选的最小字段宽度。如果转换后的值的字符数少于字段宽度,则在字段宽度的左侧(或右侧,如果已给出稍后描述的左侧调整标志)用空格(默认情况下)填充。字段宽度采用星号 *(稍后描述)或非负十进制整数的形式。”</p>
C99 中的措辞是相同的。
当字段宽度为 时*
,相应的参数将作为int
(7.12.6.1:5) 获得。但似乎并没有说硬编码的字段宽度应该适合int
.
c - 支持 strerrorlen_s 和 strerror_s 函数的最旧版本的 gcc/glibc 是什么?
strerrorlen_s
即使我定义了__STDC_WANT_LIB_EXT1__
1 ,我也无法在 gcc 4.7.2 中使用。
c - ctype.h 是否仍需要无符号字符?
传统上,严格来说,将 a 传递signed char
给ctype.h
谓词是错误的,因为它们仅定义为 -1 到 255,因此 -128 到 -2 可能最终会读取数组边界之外的值。
这是否曾经修复过,或者您仍然严格地说必须使用unsigned char
以避免现代 C 版本中的未定义行为?
c - 为什么首先要成为 C 标准的一部分?
gets
每个 C 程序员都知道,除非标准输入连接到受信任的源,否则无法安全使用。但是为什么 C 语言的开发者在它成为 C 标准的正式部分之前没有注意到如此明显的错误呢?为什么直到 C11 才从标准中删除它并用执行边界检查的函数替换它?我知道fgets
通常使用它来代替它,但这有一个令人讨厌的习惯,即\n
在末尾保留。
c - 新标准 C11(不是 C++11)中是否有 constexpr 或将来计划?
在新的语言标准 C++11 中存在关键字constexpr。
新标准 C11(不是 C++11)中是否有constexpr或将来计划?
c - 为什么 C11 不支持 lambda 函数
新的 C++11 标准支持 lambda 函数,我认为这是一个有用的特性。我知道 C 和 C++ 标准彼此不同,但我不明白为什么 C11 不支持 lambda 函数。我认为它可以有很多用处。
C11 标准的开发人员选择不包含此功能是否有原因?
c - 如何将变量声明为可移植的线程本地?
C11 引入了_Thread_local
存储类说明符,该说明符可以与static
和extern
存储类说明符结合使用,以将变量声明为线程本地的。__thread
GNU C 编译器套件实现了具有相同语义的存储类说明符。
不幸的是,我没有找到任何真正实现_Thread_local
关键字的编译器(我尝试过 gcc、clang 和 SUN studio)。我目前使用以下构造来声明关键字thread_local
:
我知道这可能不适用于 MSVC 和其他编译器。任何人都可以建议我一种更好的方法来声明thread_local
它可以在尽可能多的编译器中工作吗?
编辑
Christoph建议 Microsoft Visual C 允许__declspec(thread)
. 这是更新的宏定义:
c++ - (uint64_t)-1 是否保证产生 0xffffffffffffffff?
我知道,C 标准对它进行了很好的定义,它(unsigned)-1
必须产生 2^n-1,即所有位都设置的无符号整数。也是如此(uint64_t)-1ll
。但是,我在 C11 标准中找不到指定如何(uint64_t)-1
解释的内容。
所以,问题是:C 标准中是否有任何保证,以下哪项是正确的?
c - C:C11标准中的完整类型到不完整类型
是否存在翻译单元中的完整类型可以变成不完整类型的情况?C11 标准(第 6.2.5 节)脚注中的以下声明提示了这个问题。
一个类型在整个翻译单元中可能是不完整的或完整的,或者它可能会在翻译单元内的不同点改变状态。
不完整类型在翻译单元中变成完整类型的例子比比皆是。但我想知道相反的情况是否可能发生。我的直觉告诉我不是。