编写C / C ++多种语言
这个挑战的概念非常简单。您要做的就是编写一个可以同时作为有效C和有效C ++进行编译的程序!好吧,有一些陷阱。以每种语言编译时,程序的行为必须有所不同。该程序对于每种语言必须具有不同的输出,以便被视为“行为不同”。 规则 该程序必须是有效的C和C ++ 程序必须具有不同的输出,具体取决于编译时所使用的语言。 #ifdef __cplusplus不鼓励使用其他“简单”的预处理器技巧!(不过,其他预处理器操作也很好。) 尽量不要让程序看起来完全不同,这看起来很明显。 这是一场人气竞赛,因此只要有最有趣和令人惊讶的解决方案的人都会获胜。玩得开心! 例: 我创建了自己的程序,看看是否有可能做到这一点#ifdef: #include <stdio.h> #include <string.h> char *m="C++ rules!"; int t[11]={0,0,0,0,1,-1,-3,9,-8,82,0}; char tr(char c,int i) { return c+((sizeof('!')+1)&1)*t[i]; } int main() { int i = 0; for(;i<strlen(m);i++) { printf("%c",tr(m[i],i)); } printf("\n"); return 0; } 该程序C++ rules!在C ++中C++ stinks编译时和在C中编译时输出。 说明: 造成语言差异的是tr()函数。它利用了C和C …