| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1213 人关注过本帖, 1 人收藏
标题:gcc关于内联函数的问题
取消只看楼主 加入收藏
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
结帖率:96.55%
收藏(1)
已结贴  问题点数:20 回复次数:4 
gcc关于内联函数的问题
之前没注意过这个问题,今天才发现的。
刚刚用gcc编译了一个小程序,代码很简单,如下:
程序代码:
#include<stdio.h>
#include <time.h>

inline void PrintString(char * str);

int main(void)
{
    PrintString("This is the first line info.");
    PrintString("This is the second line info.");

    return 0;
}

inline void PrintString(char * str)
{
    printf("%s\n", str);
}


问题是不论生成的汇编代码,还是反汇编后的汇编代码都看不出内联的迹象。
编译命令如下:
gcc test.c -o test -O
gcc test.c -o test -O2
这两个命令编译后,结论都是一样,没有内联的迹象。
难道是我哪个地方写错了?
搜索更多相关主题的帖子: color 
2015-01-09 21:45
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:0 
回复 4楼 zklhp
恩,现在合适了,确实用-O就能内联了。
之前第一个编译命令不小心写错了。
2015-01-10 12:00
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:0 
这才年初啊,都没分花了吗?
2015-01-10 23:15
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:0 
回复 11楼 TonyDeng
内联这种东东一般很少会涉及到,只是最近在看一些源代码就想弄清楚内联之后的指令到底是怎样的。没想到各位还挺热心的。
看TonyDeng连发好几段话是有关C++的,就是想问问这位大神一个问题:
你觉得C语言和C++语言的区别是什么?类和多态什么的就算了,只说说共有的一些东西。
2015-01-12 02:31
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:0 
回复 17楼 TonyDeng
非常感谢能够说这么多。
其实自己对语言也没有多少偏好。
我一直把C++、C#、JAVA,还有别的一些面向对象的语言归类为商业软件语言,把C和汇编语言归类为理论语言。
商业软件语言主要用来应付短期内必须交接的开发大型项目。
理论语言主要用来研究计算机科学方面的一些理论只是。
恩,就是按用途分类的。呵呵。
2015-01-13 14:07
快速回复:gcc关于内联函数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030745 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved