问题标签 [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.

0 投票
4 回答
4647 浏览

c++ - 将大括号包围的块放置在预期表达式的位置的 C++ 语法是什么?

我遇到了这个奇怪的 C++ 程序。

谁能解释发生了什么?这个结构叫什么?

0 投票
1 回答
188 浏览

c - 如何阻止 Eclipse CDT 由于 gcc 特定语法而发出错误?

我正在编写一些使用计算 goto 的代码。goto *ptr语法检查器将和的每个实例标记&&label为语法错误。有没有办法阻止这一切?

alk 加法:

计算的 goto 示例(gcc 扩展):

eclipse看到这段代码变黄了)

0 投票
2 回答
8597 浏览

c - GCC 类型扩展

我不明白为什么会这样:

但这不会:

gcc 返回:

我知道我可以编译-std=gnu99以避免错误,但第一个使用-std=c99并使用扩展

0 投票
1 回答
1364 浏览

c - 为什么GCC的三元扩展不支持赋值?

GCC对 C 有一个很棒的三元表达式扩展,它允许我们创建这样的语句:

这真的很好,虽然它不是特别直观,但它确实有效。C 语言中的大多数二元运算符都有一个与之关联的附加运算符,它允许赋值:

既然是这种情况,并且是大多数二元 C 运算符(+, -, *, /, %, |, &, ^)的规范,为什么三元扩展运算符不是这种情况:

标准 C 中唯一支持这一点的运算符是逻辑运算符 ( ||, &&),绝对三元不属于这些运算符,那么为什么我们不能这样做呢?

我真的很想在我的代码中做一个带有酷发型的笑脸,但我做不到!这是设计操作员时的疏忽,还是故意并记录在某处?这是运算符短路其操作数的结果,还是完全其他原因?

0 投票
3 回答
1428 浏览

c - C90 中真的不允许变长数组吗?

我正在阅读 C Primer Plus 中的 VLA,这本书严格地说,将 VLA 引入 C 是从 C99 标准开始的。每当我尝试在 for 循环的标头中声明循环控制变量时,gcc 都会通知我此操作仅在 C99 模式下允许。但是,以下测试代码可以编译并运行(尽管它会打印垃圾变量,考虑到没有初始化任何数组元素,这是可以预料的)。

如果我不在 C99 模式下,这怎么可能是合法的?

0 投票
4 回答
4137 浏览

c - C代码中switch-case中的“...”是什么

这是一段代码/usr/src/linux-3.10.10-1-ARCH/include/linux/printk.h

它是一种运算符吗?为什么“The C Programming Language”没有提到它?

0 投票
2 回答
350 浏览

c - 如何解释这个表达式“int a=({10;});” 用 C 语言?

在我的 C 语言练习过程中,我遇到了一个表达式,然后我将其简化如下:

这是一个合法的表达式,因为它通过了 gcc 编译器。请关注这部分:({10;}). 有人能解释一下吗?越详细越好。谢谢!

0 投票
1 回答
167 浏览

c++ - 带有成员函数的 G++ may_alias

如何获得以下代码以在 g++ 4.7 上编译?如果我放置内联的主体,它将编译foo,但我不希望它内联(因为真正的代码要复杂得多)。

错误:

0 投票
1 回答
124 浏览

c - 在代码块窗口上使用 gcc 扩展

我想知道是否可以在 Windows 环境中的typeof等代码块中使用 gcc 扩展。

下面的代码只是为了展示我想如何使用typeof的一个例子。

PS:我在阅读http://gcc.gnu.org/onlinedocs/gcc/Typeof.html#Typeof时找不到方法

0 投票
6 回答
287 浏览

c++ - 如何将 VLA 传递给函数模板?

我有以下无法编译的代码。

如果 main 如下所示,传递数组的正确方法是什么。

错误:没有匹配的函数可以调用 array_ini_1d.......