关于操作符和函数的区别
来源:互联网 发布:sql 最后一行显示合计 编辑:程序博客网 时间:2024/05/20 11:27
(1)操作符和函数处理的阶段不同,操作符会在编译阶段处理(例如sizeof,会在编译阶段计算出值,以立即数的形式存放到代码段中),而函数则会在代码段中以call的形式去调用,如下代码所示:
int functionA(){ return 0;} int main(){ int a = 0; int b = 0; a = sizeof(int); b = functionA(); return 0;}
以上的代码反汇编的结果如下图所示,可以看到在80483d2那行sizeof(int )已经被转化成立即数04,而functionA则会被使用call 来调用。
(2)还有一个区别是,运算符不需要引用任何头文件都能够运行,因为其由编译器来实现,而函数必须有具体的实现,若没有,编译器是会报错的;
例如在上述的代码中增加一条printf的调用但不引用stdio.h,使用Gcc编译时会出现以下问题:
int functionA(){ return 0;} int main(){ int a = 0; int b = 0; printf("Hello World\n"); a = sizeof(int); b = functionA(); return 0;}
0 0
- 关于操作符和函数的区别
- 整理关于java的String类,equals函数和比较操作符的区别
- [转]整理关于java的String 类,equals函数和比较操作符的区别
- [转]整理关于java的String 类,equals函数和比较操作符的区别
- 关于前置操作符和后置操作符的区别
- 关于++操作符的前置和后置的区别
- 拷贝构造函数和赋值操作符的区别
- 拷贝构造函数和赋值操作符的区别 .
- C++复制构造函数和赋值操作符的区别
- C++复制构造函数和赋值操作符的区别
- 文件操作函数的使用和区别
- 关键字,操作符和函数区别
- 关于函数对象和调用操作符
- 说说&和&& |和||的区别 及关于位操作符的使用和总结
- 关于调用函数和不调用函数的区别
- 关于gets()函数和scanf()函数的区别
- 关于宏和函数、内联函数的一些区别
- 关于self点操作访问和下划线访问的区别
- 让Web站点崩溃最常见的七大原因
- 【华为oj】字符串最后一个字符的长度
- JAVA 面向对象和集合知识点总结
- linux vpnc
- Android studio gradle
- 关于操作符和函数的区别
- poj1214(链表
- SpringMVC与Struts2的对比
- oracle中执行计划中的cardinality
- 使用JavaMail发送邮件
- 自定义控件-ViewPagerIndicator
- 11个免费的Web安全测试工具
- 每个程序员和设计师可做的10项运动
- 2015-7-30 我的博客