1. 程式人生 > >一個有趣的C程式碼

一個有趣的C程式碼

前寫的一個小程式碼,但只在Windows下有效果:

#include <stdio.h>
#include <stdlib.h>
#define decode(p,r,i,n,t,f) r##f##r##i##t##p
#define puts decode(m,s,t,o,e,y)
int main()
{   
    puts((char*)(double[]){1.3553894309652565e+224,5.1218111469478266e+303});
    return 0;
}

以上程式碼需要用C編譯器編譯(如GCC),因為用到了C99新增的語法複合字面量,C++編譯器編譯不一定通過。

修改了下,可以在Windows和Linux下編譯都有效果的(C/C++編譯器都可編譯):

#include <stdio.h>
#include <stdlib.h>
#define decode(p,r,i,n,t,f) r##f##r##i##t##p
#define puts decode(m,s,t,o,e,y)
int main()
{
    double ID[] = {1.3553894309652565e+224,1.0805197184392210e-081,
                   7.2746636873724370e+199,6.9524391087699090e-308};
    return puts((char*)ID);
}

最後呢,希望和大家一起學習,本人剛學C語言,很感興趣,但也有很多不懂的地方,希望和大家一起探討。

如果對C也感興趣的童鞋可以來鵝qun:48552320  共同學習、交流和探討。