问题标签 [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 cor 1:2012?
我刚刚注意到对名为ISO/IEC 9899:2011/Cor 1:2012的 C11 标准进行了更正。
本次更新有哪些变化?
c - 为什么 C 标准包含许多不安全的函数,它们是无用的?
为什么 C 标准包含许多不安全的功能,例如,这些功能是无用的(在他们不使用的好程序中)和有害的getchar
?为什么 C 标准不包含有用的功能,例如getch
,和getche
?这只是众多例子之一...
UPD 我很困惑:gets
而不是getchar
.
c - 创建没有 -fms-extensions 的“嵌套结构”?
我有一个具有一些属性的结构:
我也有一个具有相同属性的结构,但没有id
.
我知道 C11 支持匿名结构,所以我可以这样做:
但是,如果我给内部结构一个标签,它就会失败。是否可以在不使用非标准编译器选项的情况下创建这样的嵌套结构-fms-extensions
?
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?错误?或者是其他东西?
c - 宏如何根据传递给它的类型定义有效的全局名称?
我相信标题是不言自明的,但这里有一个例子来说明我想要完成的事情:
一切都适用于char
、int
和单字类型,但是当涉及到unsigned
类型或其他具有多个关键字的类型时,a ## b
由于空格(例如:),使用标记粘贴 ( ) 不会生成有效名称do_something_with_foo bar
。
我能想到的最简单的解决方案是更改DEFINE_OPS_FOR_TYPE
宏以将有效名称作为第二个参数。例如:
这按预期工作,但我对其他可能的解决方案很好奇,即使它们过于复杂。我想过使用_Generic
,但我看不出它对定义名称有何帮助。
你能想出另一种解决方案吗?
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。未指定此类变量是否具有与程序中任何其他对象不同的地址。
这是什么原因?如果我们无法接收当前函数名,返回类似“未知”的内容?
c - C99+中结构的部分赋值
抱歉英语不好。
假设代码(C99 或更高版本):
现在是什么f.a
?C标准对此有什么说法吗?
我知道对于部分初始化,标准保证所有未初始化的成员都将被初始化为“适当的零”(0
对于整数、0.0
浮点数、NULL
指针等)。但是最后一条语句不是初始化(据我所知),因为f
它已经存在。我很困惑。
c - C中的_Thread_local存储类说明符?
我在C How to Program 7th一书中读到了一个关于一些新的标准 C 存储类的注释,名为_Thread_local
:
新的 C 标准增加了存储类说明符
_Thread_local
,这超出了本书的范围。
我在谷歌和这里寻找它,但没有出现。有人可以给我一些关于它的链接吗?
c - 是否有适用于 char16_t 的 strlen()?
正如问题所说:
我搜索并发现只有 C++ 解决方案。
我的编译器是GCC 4.7
.
编辑:
为了澄清,我正在寻找一个返回计数的解决方案,而code points
不是计数characters
。
对于UTF-16
包含BMP
.