一個有趣的C程式碼
阿新 • • 發佈:2018-12-20
之前寫的一個小程式碼,但只在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 共同學習、交流和探討。