Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何查看为C函数生成的汇编代码?_C_Assembly_Compiler Flags - Fatal编程技术网

如何查看为C函数生成的汇编代码?

如何查看为C函数生成的汇编代码?,c,assembly,compiler-flags,C,Assembly,Compiler Flags,我需要查看为某些C函数生成的汇编代码 使用g++编译器编译C代码时应该使用哪些标志?您可以添加-S标记以查看汇编代码 对于文件TEST.c,使用gcc,do gcc TEST.c -S clang还输出带有类似-S标记的汇编代码 然后只需查找扩展名为.S的文件。对于gcc或g++编译器,您可以使用-S标志查看生成的汇编代码 GNUC编译器文档 -S:在正确编译阶段后停止;不要组装。对于指定的每个非汇编程序输入文件,输出是汇编程序代码文件的形式 默认情况下,源文件的汇编程序文件名是通过将后缀.c

我需要查看为某些C函数生成的汇编代码


使用
g++
编译器编译C代码时应该使用哪些标志?

您可以添加
-S
标记以查看汇编代码

对于文件
TEST.c
,使用
gcc
,do

gcc TEST.c -S
clang
还输出带有类似
-S
标记的汇编代码


然后只需查找扩展名为
.S
的文件。

对于
gcc
g++
编译器,您可以使用
-S
标志查看生成的汇编代码

GNUC编译器文档
-S
:在正确编译阶段后停止;不要组装。对于指定的每个非汇编程序输入文件,输出是汇编程序代码文件的形式

默认情况下,源文件的汇编程序文件名是通过将后缀
.c
.i
等替换为
.s
来生成的

不需要编译的输入文件将被忽略


然后您必须在文件中查找函数的标识符(如果编译器没有内联它)。

您可以在二进制文件中使用命令objdump,您必须查看汇编代码,在linux中,这取决于您使用的编译器。g++不是C编译器。在linux系统中,我使用g++main.C等编译程序。。。所以不要使用G++?@ No.4SeL:<代码> Meal.CPP < /Cult>看起来像C++源代码。那么,C还是C++?它们不是相同的语言(尽管g++和gcc的答案应该相同)。