看看这段代码:
#include <stdio.h>
#define _ONE "one"
#define _TWO_AND ", two and "
int main()
{
const char THREE[6] = "three" ;
printf(_ONE _TWO_AND "%s.\n", THREE );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这printf是有效的:
printf("one" ", two and " "%s.\n", "three" );
Run Code Online (Sandbox Code Playgroud)
输出是:
一,二,三.
gcc编译此代码后既没有错误也没有警告消息.gcc编译器是否应该以这种方式工作,还是一个bug?
是否可以修改C程序中的环境变量.像这样的东西:
#include <stdlib.h>
int main( void )
{
system( "echo $VARIABLE" );
system( "VARIABLE=somethig");
system( "echo $VARIABLE" );
return 0;
}
Run Code Online (Sandbox Code Playgroud)