C语言 函数同名宏的定义及注意事项
来源:互联网 发布:淘宝主营占比影响 编辑:程序博客网 时间:2024/04/29 03:22
为了实现跨平台,在C语言中,可以通过宏对已经存在的函数进行重新定义。
例如,在Windows中,具有itoa这个api函数用于数字转换为字符串:
#ifdef WIN32
#define itoa(intSource, strTarget) itoa((intSource), (strTarget), 10);
#else
#define itoa(intSource, strTarget) sprintf((strTarget), "%d", (intSource));
#endif
上面的宏定义中对Windows中的itoa函数进行了同名宏替换。
也就是说,在以后的编码过程中,itoa()中的参数只有两个,而不是原来的三个。
但上述同名宏替换需要注意一点:就是头文件的加载顺序。必须保证原函数所在头文件要在宏定义之前被加载,否则会报错。即在这段宏定义之前应先#include <stdlib.h>(itoa函数定义所在头文件)。
文件清单:
transplant.h
#ifndef _TRANSPLANT_H_
#define _TRANSPLANT_H_
#include <stdlib.h>
#ifdef WIN32
#define itoa(intSource, strTarget) itoa((intSource), (strTarget), 10);
#else
#define itoa(intSource, strTarget) sprintf((strTarget), "%d", (intSource));
#endif
#endif
- C语言 函数同名宏的定义及注意事项
- 黑马程序员-C语言函数的基本定义和注意事项
- C语言宏定义注意事项
- C语言中常用的函数及注意事项
- 关于c语言变量定义的注意事项
- C语言中同名函数的烦恼(求help)
- C语言宏的定义及使用
- C语言 函数定义及调用
- C语言宏定义##连接符和#符的使用及其它宏定义注意事项
- C语言宏定义函数
- C语言 continue的用法及注意事项
- C语言宏定义函数与函数的区别
- C语言中的scanf函数的注意事项
- C语言中的函数定义及函数声明
- C语言宏定义中的#,##,#@及\符号的作用
- c语言宏定义中的#,##,#@及\符号的作用
- C语言宏定义中的#,##,#@及\符号的作用
- C语言宏定义中的#,##,#@及\符号的作用
- JAVA与数字签字
- openssl在windows下的安装
- 网站导航
- 解决sql server查询速度慢11个方法
- SHELL 中的浮点运算
- C语言 函数同名宏的定义及注意事项
- SQL Server数据库恢复操作实例
- 查询数据库中重复记录的方法
- 如何看待Intel购买风河公司
- flex data representation
- alter system archive log stop
- 结构和接口
- 获取当前鼠标点处的窗口
- 用JavaScript结合CSS实现网页换肤功能