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

c - 什么是 C11 cor 1:2012?

我刚刚注意到对名为ISO/IEC 9899:2011/Cor 1:2012的 C11 标准进行了更正。

本次更新有哪些变化?

0 投票
4 回答
532 浏览

c - (x++, y) + (y++, x) 是未定义还是未指定,如果未指定,它可以计算什么?

逗号序列运算符在表达式中引入序列点。我想知道这是否意味着下面的程序避免了未定义的行为。

如果它确实避免了未定义的行为,它仍然可以是未指定的,也就是说,返回几个可能的值之一。我认为在 C99 中,它只能计算1,但实际上,各种版本的 GCC 将该程序编译为返回的可执行文件2。Clang 生成一个返回的可执行文件1,显然符合我的直觉。

最后,这在 C11 中是否发生了变化?

0 投票
3 回答
304 浏览

c - 为什么 C 标准包含许多不安全的函数,它们是无用的?

为什么 C 标准包含许多不安全的功能,例如,这些功能是无用的(在他们不使用的好程序中)和有害的getchar?为什么 C 标准不包含有用的功能,例如getch,和getche?这只是众多例子之一...

UPD 我很困惑:gets而不是getchar.

0 投票
1 回答
390 浏览

c - 创建没有 -fms-extensions 的“嵌套结构”?

我有一个具有一些属性的结构:

我也有一个具有相同属性的结构,但没有id.

我知道 C11 支持匿名结构,所以我可以这样做:

但是,如果我给内部结构一个标签,它就会失败。是否可以在不使用非标准编译器选项的情况下创建这样的嵌套结构-fms-extensions

0 投票
2 回答
1601 浏览

c++ - __func__ 外部函数定义

如果我们__func__在 C (C99 / C11) 和 C++ 中的函数之外使用预定义变量会发生什么?

gcc 4.7.2 只给出警告(-Wall -W -pedantic启用)并且什么也不打印。

标准没有明确说明:

ISO/IEC 14882:2011

8.4.1 一般 [dcl.fct.def.general]

8函数局部预定义变量__func__被定义为好像static const char __func__[] = "function-name"; 已经提供了表单的定义,其中函数名称是实现定义的字符串。未指定此类变量是否具有与程序中任何其他对象不同的地址。

ISO/IEC 9899:2011

6.4.2.2 预定义标识符

1标识符__func__应由翻译器隐式声明,就好像紧跟在每个函数定义的左大括号之后static const char __func__[] = "function-name"; 出现声明一样,其中 function-name 是词法封闭函数的名称。

UB?错误?或者是其他东西?

0 投票
2 回答
319 浏览

c - 宏如何根据传递给它的类型定义有效的全局名称?

我相信标题是不言自明的,但这里有一个例子来说明我想要完成的事情:

一切都适用于charint和单字类型,但是当涉及到unsigned类型或其他具有多个关键字的类型时,a ## b由于空格(例如:),使用标记粘贴 ( ) 不会生成有效名称do_something_with_foo bar

我能想到的最简单的解决方案是更改DEFINE_OPS_FOR_TYPE宏以将有效名称作为第二个参数。例如:

这按预期工作,但我对其他可能的解决方案很好奇,即使它们过于复杂。我想过使用_Generic,但我看不出它对定义名称有何帮助。

你能想出另一种解决方案吗?

0 投票
3 回答
1245 浏览

c++ - C 和 C++ 的 __func__ 值差异

我真的正确吗,C 标准保证 _ func _ _ value 始终是封闭函数的名称,而在 C++(我的意思是 C++11,当然)它可以是任何实现定义的字符串(例如,如果我们有没有参数的函数 foo,我们可以得到类似“一些字符串 fdgdg asdfs fsdf sd”)?

ISO/IEC 9899:2011

6.4.2.2 预定义标识符

语义

1 标识符 _ _ func _ _ 应由翻译器隐式声明,就好像紧跟在每个函数定义的左大括号之后,声明 static const char _ func _ [] = "function-name"; 出现,其中function-name 是词法封闭函数的名称

ISO/IEC 14882:2011

8.4.1 一般 [dcl.fct.def.general]

8 函数局部预定义变量 _ _ func _ 被定义为形式的定义 static const char _ _ func _ _ [] = "function-name"; 已提供,其中function-name 是实现定义的 string。未指定此类变量是否具有与程序中任何其他对象不同的地址。

这是什么原因?如果我们无法接收当前函数名,返回类似“未知”的内容?

0 投票
2 回答
574 浏览

c - C99+中结构的部分赋值

抱歉英语不好。

假设代码(C99 或更高版本):

现在是什么f.a?C标准对此有什么说法吗?

我知道对于部分初始化,标准保证所有未初始化的成员都将被初始化为“适当的零”(0对于整数、0.0浮点数、NULL指针等)。但是最后一条语句不是初始化(据我所知),因为f它已经存在。我很困惑。

0 投票
1 回答
3455 浏览

c - C中的_Thread_local存储类说明符?

我在C How to Program 7th一书中读到了一个关于一些新的标准 C 存储类的注释,名为_Thread_local

新的 C 标准增加了存储类说明符_Thread_local,这超出了本书的范围。

我在谷歌和这里寻找它,但没有出现。有人可以给我一些关于它的链接吗?

0 投票
5 回答
5976 浏览

c - 是否有适用于 char16_t 的 strlen()?

正如问题所说:

我搜索并发现只有 C++ 解决方案。

我的编译器是GCC 4.7.

编辑:

为了澄清,我正在寻找一个返回计数的解决方案,而code points不是计数characters

对于UTF-16包含BMP.