所见的GCC和标准C不同的一些语法(长期更新)

来源:互联网 发布:羽毛球 直播软件 编辑:程序博客网 时间:2024/05/22 02:29

弄linux编程用的是gcc,而之前所了解的都是标准,对gcc的扩展不太了解,所以做一些记录,以后后面用得着。

1、

函数参数外定义

main(argc, argv)intargc;char**argv;{return; }
//gcc 可以编译通过。

2、 类型的获取

typeof int a;typeof(a) b;main(argc,argv)intargc;char**argv;{    int a;    typeof(a) b;    a =1 ;    b =1;    printf("%d %d \n",a,b);    return;}

3、零长度数组

#include <stdio.h>#include <stdlib.h>main(argc,argv)intargc;char**argv;{    int a[0];    return;}


4、switch .. case 的不一样,注意数字和...有空格,否则会被认为是小数点,编译出错。

#include <stdio.h>#include <stdlib.h>main(argc,argv)intargc;char**argv;{    char a =100;    switch(a){    case 1 ...  10: printf(" between 0 ... 10 \n");break;    case 11 ... 20: printf(" between 11 ... 10 \n");break;    case 21 ... 30: printf(" between 21 ... 30 \n");break;    case 91 ... 100: printf(" between 91 ... 100 \n");break;    default: printf(" Not exist \n");break;    }    return;}

5、数组的初始化

int a[100] = {[0 ... (100-1)] = 0};



0 0
原创粉丝点击