c语言代码和汇编码

seraphimpk 2006-08-24 04:03:49
c语言的代码通过编译器是不是应该直接编译成机器码?

那听到有人说,比较两段c代码性能的时候,看一下c代码对应的汇编码?难倒c编译器编译后的是汇编码?还是有其他的工具。

谢谢大家?
...全文
313 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
seraphimpk 2006-08-25
  • 打赏
  • 举报
回复
谢谢楼上的 ,清楚了。

谢谢大家!
hailongchang 2006-08-25
  • 打赏
  • 举报
回复
To seraphimpk(无可救药)

--------------------------------------------
hailongchang(木乃伊)
不一定,你看到的是没有优化过的汇编码,现代编译器最后产生的都是优化过的代码
--------------------------------------------

在哪里看这些代码?

---------------------------------------------
编译器的优化我们没有必要去管它,C代码的编译过程是这样的:
1:预处理, 主要是将头文件展开.
2:汇编 将代码汇编为 汇编语言代码
3:编译 将汇编代码编译为 目标文件,通常是obj后缀的
4:链接 将obj后缀的文件,还有相关的静态库合成为一个可执行文件,exe后缀的

我所说的编译器优化在debug模式下不进行,在release模式下主要是在编译阶段进行,就是根据汇编代码进行优化.在windows下的VC,可以在调试时设置断点,然后在调试菜单中选择反汇编看到.在linux下的GCC,可以分步执行上述步骤看到汇编代码


seraphimpk 2006-08-24
  • 打赏
  • 举报
回复
难道我一直理解的都是错的,现在越来越糊涂了,c代码编译后到底成了什么东西,在哪里?

恳请达人指教,小弟先谢过.
bombwang 2006-08-24
  • 打赏
  • 举报
回复
学习
liujinxing 2006-08-24
  • 打赏
  • 举报
回复
学习
seraphimpk 2006-08-24
  • 打赏
  • 举报
回复
hailongchang(木乃伊)
不一定,你看到的是没有优化过的汇编码,现代编译器最后产生的都是优化过的代码
------------------------

在哪里看这些代码?
hailongchang 2006-08-24
  • 打赏
  • 举报
回复
那听到有人说,比较两段c代码性能的时候,看一下c代码对应的汇编码?难倒c编译器编译后的是汇编码?还是有其他的工具。

--------------------------------------------------------------------------
不一定,你看到的是没有优化过的汇编码,现代编译器最后产生的都是优化过的代码
seraphimpk 2006-08-24
  • 打赏
  • 举报
回复
m_nNightmire(LONGLONG *lpCash, LPVOID *CGirl)

这个指的是在vc中调试的时候看一下汇编码吧,点一下Disassembly按钮就行了

------------------------

只能在vc中吗?tc编译后的汇编码怎么看?
m_nNightmire 2006-08-24
  • 打赏
  • 举报
回复
m_nNightmire(LONGLONG *lpCash, LPVOID *CGirl) ( ) 信誉:100

那听到有人说,比较两段c代码性能的时候,看一下c代码对应的汇编码?
//=============================================================

这个指的是在vc中调试的时候看一下汇编码吧,点一下Disassembly按钮就行了


seraphimpk 2006-08-24
  • 打赏
  • 举报
回复
Bennyatt() 大哥

俺不是想在c语言中嵌入汇编,只是想知道俺的c代码编译后的汇编是咋样的,俺不晓得到哪里看,咋整?
seraphimpk 2006-08-24
  • 打赏
  • 举报
回复
mao2541551()
不是汇编还能使什么啊。
-------------------
呵呵,看来俺错了很久啊,一直以为是机器码,那怎么样才能看到编译器编译后产生的汇编码呢?
Bennyatt 2006-08-24
  • 打赏
  • 举报
回复
C语言中是可以直接 嵌入一些 汇编语言的
我用的VC6。0来做的控制台编程。
但是。。。8好意思具体怎么弄我忘了。。。大书在家呢。。。
大概是这么写的
void main()
{....
....
_asm{


//这里就是 汇编内容
//但是这个是不是用 "_asm"我却真的记8清楚了

}

}
m_nNightmire 2006-08-24
  • 打赏
  • 举报
回复
那听到有人说,比较两段c代码性能的时候,看一下c代码对应的汇编码?
//=============================================================

这个指的是在vc中调试的时候看一下汇编码吧,点一下Disassembly按钮就行了
mao2541551 2006-08-24
  • 打赏
  • 举报
回复
不是汇编还能使什么啊。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧