【发布时间】:2017-02-15 16:40:17
【问题描述】:
只是好奇,
考虑到我有
./第一
./秒
它们是可执行的 c 程序
first.c:
char main(void){
return '5';
}
second.c:
#include<stdio.h>
int main(int argc, char** argv){
printf("%s", argv[2]);
return 0;
}
(我想在这里打印 5)
是否可以像这样编译 second.c:
gcc second.c -./first
我当然知道那行不通,但有没有可能写出我想要的东西?
【问题讨论】:
-
char main(void)你从哪里得到的? -
你正在你的 shell 中寻找管道操作符(或
$()) -
@SouravGhosh 我知道这是非常错误的,但为了表达我的想法,我使用了 char main(void) 因为我想使用其他 c 程序的返回值。
-
删除first.c,将函数重命名为
char * non_main(void)并在second.c中调用,最不麻烦的方式。 -
您可以使用标准的
int main(...),因为'5'是int表达式,正如printf("%zu\n", sizeof('5'));所揭示的那样。