• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > c++ 编程 几个有用的宏详解

c++ 编程 几个有用的宏详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++宏表函数,c++宏定义,c++ 宏,c++宏定义函数,c++中宏定义等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

1. 打印错误信息

如果程序的执行必须要求某个宏被定义,在检查到宏没有被定义是可以使用#error,#warning打印错误(警告)信息,如:

#ifndef __unix__
#error "This section will only work on UNIX systems"
#endif
</div>

只有__unix__宏被定义,程序才能被正常编译。

2. 方便调试

__FILE, __LINE, __FUNCTION是由编译器预定义的宏,其分别代表当前代码所在的文件名,行号,以及函数名。

可以在代码中加入如下语句来跟踪代码的执行情况:

if(err) {
printf("%s(%d)-%s\n",__FILE__,__LINE__,__FUNCTION__);
}
 
</div>

3. C/C++的混合编程

函数int foo(int a, int b);

在C语言的该函数在编译器编译后在库中的名字为_foo,而C++中该函数被编译后在库中的名字为_foo_int_int(为实现函数重载所做的改变)。如果C++中需要使用C编译后的库函数,则会提示找不到函数,因为符号名不匹配。C++中使用extern “C”解决该问题,说明要引用的函数是由C编译的,应该按照C的命名方式去查找符号。

如果foo是C编译的库,如果要在C++中使用foo,需要加如下声明,其中__cplusplus是c++编译器预定义的宏,说明该文件是被C++编译器编译,此时引用C的库函数,就需要加extern “C”。

#ifdef __cplusplus
extern “C” {
#endif
   extern int foo(int a, int b);
 
#ifdef __cplusplus
}
#endif
 
</div>

4. 可变参数

#define debug(format, args...) fprintf (stderr, format, args)
#define debug(format, ...) fprintf (stderr, format, __VA_ARGS__)

或者#define debug(format, ...) fprintf (stderr, format, ## __VA_ARGS__)

前两者存在多余逗号问题,第三个宏使用##去掉可能多余的逗号。

以上就是小编为大家带来的c++ 编程 几个有用的宏详解全部内容了,希望大家多多支持~

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • c++ 编程 几个有用的宏详解
  • 关于C++中定义比较函数的三种方法小结
  • 简单讲解C++的内部和外部函数以及宏的定义
  • 在C++中自定义宏的简单方法
  • C++访问注册表获取已安装软件信息列表示例代码
  • 如何在C++中建立一个顺序表
  • C与C++ 无参函数的区别解析
  • 在c和c++中实现函数回调
  • 探讨:C++中函数返回引用的注意事项

相关文章

  • 2017-05-28使用C语言判断英文字符大小写的方法
  • 2017-05-28C/C++程序开发中实现信息隐藏的三种类型
  • 2017-05-28美化你的代码 vb(VBS)代码格式化的实现代码
  • 2017-05-28简单分析针对ARM平台的C语言程序的编译问题
  • 2017-05-28剖析C++的面向对象编程思想
  • 2017-05-28详解C++中如何将构造函数或析构函数的访问权限定为private
  • 2017-05-28怎么实现类的成员函数作为回调函数
  • 2017-05-28使用C语言构建基本的二叉树数据结构
  • 2017-05-28VC使用编译时间作为版本号标识的方法
  • 2017-05-28解析Linux下的时间函数:设置以及获取时间的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 全面了解结构体、联合体和枚举类型
    • C语言读写配置文件的方法
    • C++调试追踪class成员变量的方法
    • 浅析VC++中的头文件包含问题
    • DSP中浮点转定点运算--定点数的加减乘除运算
    • 二叉搜索树的插入与删除(详细解析)
    • C语言使用openSSL库DES模块实现加密功能详解
    • opencv 做人脸识别 opencv 人脸匹配分析
    • C语言 数组中重复的数字分析及方法
    • C语言 结构体和指针详解及简单示例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有