为什么这个OrgBabelC代码段不产生输出?
基本上,为什么这个OrgBabelC代码段不产生输出?,c,emacs,literate-programming,org-babel,C,Emacs,Literate Programming,Org Babel,基本上,printf如果我把它放在main()中,就不会产生输出 这项工作: #+begin_src C printf("Hello World!\n"); #+end_src 但是这个 #+begin_src C void main() { printf("Hello World!\n"); } #+end_src 导致 代码块没有输出 我已尝试将:结果输出添加到begin\u src行。我尝试过包括stdio.h。当我查看*Messages*时,我发现当我在main中包装printf时,
printf
如果我把它放在main()
中,就不会产生输出
这项工作:
#+begin_src C
printf("Hello World!\n");
#+end_src
但是这个
#+begin_src C
void main() {
printf("Hello World!\n");
}
#+end_src
导致
代码块没有输出
我已尝试将:结果输出
添加到begin\u src
行。我尝试过包括stdio.h
。当我查看*Messages*
时,我发现当我在main
中包装printf
时,我得到了错误
**读取结果时出错:(缓冲区开始)**
这里怎么了?试试这个:
#+名称:main
#+开始
int main(int argc,char*argv[]){
printf(“你好,世界!\n”);
返回0;
}
#+结束(src)
,即使没有参数输入main或#+name:main
(我必须在返回0
后加一个分号)。显然,它只需要是一个带返回的int?它始终取决于使用的ANSI C标准。如果是C89/90,您可以不使用int编写,如果不需要int。是的,你应该在返回0后加上分号。这是我的错误,thx.Nope。当我玩得更远时,我使用什么标准并不重要。添加:flags-std=c99
允许我使用c99功能,但不允许我从void函数获取输出。void main(){…}不是ANSI C标准,某些C编译器允许它,但它是错误的。在ANSI C C89/C90中,您可以只编写main(){…},因为暗示了int。