问题标签 [gcc-extensions]
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++ - 将大括号包围的块放置在预期表达式的位置的 C++ 语法是什么?
我遇到了这个奇怪的 C++ 程序。
谁能解释发生了什么?这个结构叫什么?
c - 如何阻止 Eclipse CDT 由于 gcc 特定语法而发出错误?
我正在编写一些使用计算 goto 的代码。goto *ptr
语法检查器将和的每个实例标记&&label
为语法错误。有没有办法阻止这一切?
alk 加法:
计算的 goto 示例(gcc 扩展):
(eclipse
看到这段代码变黄了)
c - GCC 类型扩展
我不明白为什么会这样:
但这不会:
gcc 返回:
我知道我可以编译-std=gnu99
以避免错误,但第一个使用-std=c99
并使用扩展
c - 为什么GCC的三元扩展不支持赋值?
GCC对 C 有一个很棒的三元表达式扩展,它允许我们创建这样的语句:
这真的很好,虽然它不是特别直观,但它确实有效。C 语言中的大多数二元运算符都有一个与之关联的附加运算符,它允许赋值:
既然是这种情况,并且是大多数二元 C 运算符(+
, -
, *
, /
, %
, |
, &
, ^
)的规范,为什么三元扩展运算符不是这种情况:
标准 C 中唯一不支持这一点的运算符是逻辑运算符 ( ||
, &&
),绝对三元不属于这些运算符,那么为什么我们不能这样做呢?
我真的很想在我的代码中做一个带有酷发型的笑脸,但我做不到!这是设计操作员时的疏忽,还是故意并记录在某处?这是运算符短路其操作数的结果,还是完全其他原因?
c - C90 中真的不允许变长数组吗?
我正在阅读 C Primer Plus 中的 VLA,这本书严格地说,将 VLA 引入 C 是从 C99 标准开始的。每当我尝试在 for 循环的标头中声明循环控制变量时,gcc 都会通知我此操作仅在 C99 模式下允许。但是,以下测试代码可以编译并运行(尽管它会打印垃圾变量,考虑到没有初始化任何数组元素,这是可以预料的)。
如果我不在 C99 模式下,这怎么可能是合法的?
c - C代码中switch-case中的“...”是什么
这是一段代码/usr/src/linux-3.10.10-1-ARCH/include/linux/printk.h
:
它是一种运算符吗?为什么“The C Programming Language”没有提到它?
c - 如何解释这个表达式“int a=({10;});” 用 C 语言?
在我的 C 语言练习过程中,我遇到了一个表达式,然后我将其简化如下:
这是一个合法的表达式,因为它通过了 gcc 编译器。请关注这部分:({10;})
. 有人能解释一下吗?越详细越好。谢谢!
c++ - 带有成员函数的 G++ may_alias
如何获得以下代码以在 g++ 4.7 上编译?如果我放置内联的主体,它将编译foo
,但我不希望它内联(因为真正的代码要复杂得多)。
错误:
c - 在代码块窗口上使用 gcc 扩展
我想知道是否可以在 Windows 环境中的typeof等代码块中使用 gcc 扩展。
下面的代码只是为了展示我想如何使用typeof的一个例子。
PS:我在阅读http://gcc.gnu.org/onlinedocs/gcc/Typeof.html#Typeof时找不到方法
c++ - 如何将 VLA 传递给函数模板?
我有以下无法编译的代码。
如果 main 如下所示,传递数组的正确方法是什么。
错误:没有匹配的函数可以调用 array_ini_1d.......