0
我想知道它是否可能在代碼塊中使用gcc擴展,如typeof在Windows環境中。在代碼塊窗口上使用gcc擴展
以下代碼僅用於展示我想如何使用typeof。
#include <stdio.h>
#include <stdlib.h>
#define SWAP(x, y) do { typeof(x) temp##x##y = x; x = y; y = temp##x##y; } while (0)
typedef struct Away{
int var1;
char cc;
int array[10];
} somedatatype;
void print_data(somedatatype data){
printf("var1 = %d\ncc = %c\narray[10] = {",data.var1,data.cc);
for(int i=0;i<10;i++){
i!=9 ? printf("%d,",data.array[i]):printf("%d}",data.array[i]);
}
}
int main(){
somedatatype data1, data2;
int a=51,b=42;
//initialize data1
data1.var1=2;
data1.cc='k';
for(int i=0;i<10;data1.array[i]=5,i++);
//initialize data2
data2.var1=3;
data2.cc='y';
for(int i=0;i<10;data2.array[i]=4,i++);
//swap
SWAP(data1, data2);
SWAP(a, b);
//print everything
printf("data1:\n");
print_data(data1);
printf("\ndata2:\n");
print_data(data2);
printf("\na = %d\nb = %d\n");
}
PS:通過 http://gcc.gnu.org/onlinedocs/gcc/Typeof.html#Typeof
謝謝,我正在嘗試** std = c99 **,它沒有編譯。 但我認爲標誌** - std = c99和-std = gnu99 **是相同的。 – Mansueli