相关疑难解决方法(0)

C有翻译吗?

我想知道是否有类似C语言的解释器.也就是说,在Linux终端中我可以输入"python"然后在该解释器中编码.(我不确定翻译正确的词).这对于测试不同的东西真的很有帮助,我很好奇C是否存在类似的东西.虽然我对此表示怀疑.我能想到的唯一能做的就是C shell ......

c interpreter read-eval-print-loop

111
推荐指数
7
解决办法
7万
查看次数

如何阻止GCC从obj文件中的字符串文字中删除尾随换行符?

在Linux下工作,我刚刚遇到了以下问题.(当然,有人会给我答案,但到目前为止,我没有找到任何简单明了的答案:)

/*compile with gcc -o out.x hello.c*/

#include<stdio.h>

int main()
{
    printf("Hello World2\r\n");
    printf("Hello World3\r\n ");

 return 0;
}
Run Code Online (Sandbox Code Playgroud)

在Linux下运行以下代码给出两个字符串但结尾字符是不同的:第一个输出以0x0d结尾,而第二个以0x0d,0x0a结尾.

这是由编译器(GCC)完成的,如obj文件中所示:

Contents of section .rodata:
 400610 01000200 48656c6c 6f20576f 726c6432  ....Hello World2
 400620 0d004865 6c6c6f20 576f726c 64330d0a  ..Hello World3..
 400630 2000                                  .              
Run Code Online (Sandbox Code Playgroud)

所以,问题是:

  • 为什么?
  • 我怎样才能避免这种"优化"(!?)

谢谢

linux printf gcc newline carriage-return

1
推荐指数
1
解决办法
73
查看次数