use*_*723 10
尝试
gcc filename.c && a.out
Run Code Online (Sandbox Code Playgroud)
如果第一个命令成功,它只运行第二个命令.请参阅https://askubuntu.com/questions/334994/which-one-is-better-using-or-to-execute-multiple-commands-in-one-line
在 C 语言中,快速而肮脏的解决方案是一个非常糟糕的主意:
gcc myfile.c && ./a.out
Run Code Online (Sandbox Code Playgroud)
如果编译失败,则不会运行可执行文件,但是当编译成功时,即使发出警告,代码也会自动运行;在 C 中,在尝试运行代码之前,您应该至少检查警告。大多数情况下,您不应该运行编译时带有警告的代码。通常运行带有警告的代码意味着代码有一些未定义的行为;你不应该这么盲目地跑步。当然,如果像上面的代码那样至少有警告,那么无论如何,当应该有警告时,可能不会有很多警告。至少,应该使用:
gcc myfile.c -Wall -Wextra -Werror && ./a.out
Run Code Online (Sandbox Code Playgroud)
使用-Wall -Wextra会对许多带来未定义行为的愚蠢错误发出警告-Werror,并使编译后带有警告的代码不会自动运行。
为了解决这个问题,并减少输入,我曾经使用保存crepl在搜索路径中的 bash 脚本:
gcc myfile.c && ./a.out
Run Code Online (Sandbox Code Playgroud)
当我想快速测试保存在例如 中的一些源代码时myfile.c,我可以在命令行输入:
crepl myfile.c
Run Code Online (Sandbox Code Playgroud)
如果编译失败,代码将不会运行,如果编译时出现警告,代码也不会运行,这要归功于-Werror. 如果编译成功,则程序运行,运行后临时可执行文件被删除。
自从最初写这个答案以来,我已经将我的解决方案发展成一个稍微更花哨的 bash 脚本,它接受编译器的可选进一步参数、链接库等。
gcc myfile.c -Wall -Wextra -Werror && ./a.out
Run Code Online (Sandbox Code Playgroud)
现在,如果我需要链接,例如数学库:
crun myfile.c -lm
Run Code Online (Sandbox Code Playgroud)
成功了,如果有任何错误或警告(达到合理的水平)就会失败,并自行清理。
| 归档时间: |
|
| 查看次数: |
3167 次 |
| 最近记录: |