首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否有预处理器指令在编译过程中从标准输入中读取源文件?

是否有预处理器指令在编译过程中从标准输入中读取源文件?
EN

Stack Overflow用户
提问于 2011-01-14 11:24:29
回答 3查看 4.2K关注 0票数 18

可能重复:

How to write program during compiling?

我在一个满是面试问题的网站上发现了这个问题,并被它难住了。是否有一些预处理器指令允许在编译过程中从标准输入中读取?

写一个小的C程序,它在编译时从输入端获取另一个程序,在运行时给出第二个程序的结果。(注意:关键是,想想UNIX)。假设程序是1.c,则在编译时

代码语言:javascript
复制
$ cc -o 1 1.c 
int main() { printf("Hello World\n"); } ^D 
$ ./1
Hello World

它证明这个问题是一个完全相同的问题。How to write program during compiling?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-14 11:29:49

#include "/dev/stdin"就是诀窍。

充其量只是一个愚蠢的面试问题。

票数 60
EN

Stack Overflow用户

发布于 2011-01-14 11:41:15

本着先发制人的精神,我试图制作一个更独立于平台/环境的版本。然而,我被困在这里...所以这就是我的问题,我可以用什么来取代‘?’用什么?

代码语言:javascript
复制
#ifdef _WIN32
#include ???
#else
#include "/dev/stdin"
#endif

编辑:多亏了ohmantics,我现在可以通过以下方式获得工作:

代码语言:javascript
复制
#ifdef _WIN32
#include "CON"
#else
#include "/dev/stdin"
#endif
票数 3
EN

Stack Overflow用户

发布于 2011-01-14 11:28:46

您需要告诉编译器从标准输入中获取源代码输入,并对其进行编译。这很可能是一个命令行参数。

这样,您就可以通过管道将另一个程序的输出输入到您的编译器中。

照常编辑,堆栈溢出already had an answer for this.

代码语言:javascript
复制
echo "int main() { return 0; }" | gcc -x c -

EDIT在编译时遗漏了语句。管道技巧在其他方面仍然有效,所以我就把它留在这里。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4687701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档