
1 sNullp 2013 年 1 月 20 日 是gcc特有的语法应该。 |
2 gDD 2013 年 1 月 20 日 |
3 Sherlockhlt OP @gDD 原来是C99语法,不过这种写法是应该避免还是应该使用? |
4 gDD 2013 年 1 月 20 日 @Sherlockhlt 说不好,我不是搞C的,既然你说Linux内核都在用,没有理由不用啊,看着多清晰。 |
5 sinxccc 2013 年 1 月 20 日 @Sherlockhlt 归根结底还是一句套话:视项目视团队而定。 |
6 liuw 2013 年 1 月 20 日 这么好的东西为什么不用? |
7 ForgotFun 2013 年 1 月 20 日 这是GCC的扩展。是内核中常用的赋值方法。 |
8 ForgotFun 2013 年 1 月 20 日 #include <stdio.h> #include <string.h> void main (int argc, char **argv) { int size = atoi(argv[1]); char buffer[size]; printf("sizeof buffer %d\n", sizeof(buffer)); } 在GCC中这程序也是合法。 |
10 Sherlockhlt OP @liuw 主要是怕兼容性不好 |
13 sivacohan PRO 没看明白重点。。。 有时候我也这么写啊。 |
14 kneep 2013 年 1 月 20 日 via iPhone 这是GNU C的扩展Linux里面大量存在 |
16 dndx 2013 年 1 月 20 日 @fangzhzh @ForgotFun 这跟 GCC 有什么关系,VLA 是 C99 标准定义的。 https://en.wikipedia.org/wiki/Variable-length_array |
19 ssword 2013 年 1 月 20 日 C99的语法 |
20 liuw 2013 年 1 月 20 日 |
22 faywong 2013 年 1 月 21 日 Linux代码的很多特性都必须由gcc来支持,并且gcc在支持c语言最新标准上最及时。所以建议在Linux平台尽情使用。若是跨平台的项目/兼容过去的陈旧代码,请尽量不要使用。 |