我的朋友说,有可能编写一个C程序,打印出"hello world",不IF/WHILE/FOR带分号,不带分号.经过极少的研究,我告诉她这是不可能的.可能吗?
我的问题与这个帖子有关.
这是代码
#include <stdio.h>
int main(int argc, char *argv[printf("Hello, world!\n")]) {}
Run Code Online (Sandbox Code Playgroud)
我意外地将其保存为*.cpp文件并尝试使用它进行编译g++.但是我收到了错误和警告.
error: expected ',' or '...' before 'argv'
warning: second argument of 'int main(int, char*)' should be 'char ** '
我知道上面的代码不是标准C++ [数组的大小必须是C++中的常量表达式]但我一直认为g++支持Varible Length Array作为扩展.我哪里错了?
PS:上面的代码用CLang ++编译
C:\Users\SUPER USER\Desktop>type check.cpp
#include <stdio.h>
int main(int argc, char *argv[printf("Hello, world!\n")]) {}
C:\Users\SUPER USER\Desktop>clang++ check.cpp
C:\Users\SUPER USER\Desktop>
Run Code Online (Sandbox Code Playgroud)