原文:C/C++典型错误:宏中使用函数

define min a,b a lt b a : b define max a,b a gt b a : b 我常常会用这两个宏,一般来说,宏比函数更高效,但是如果里面元素是函数的话,就不是这样。因为宏只是在编译预处理阶段执行简单替换,如果你有两个函数f和g,代码中写了min f a ,g a ,那么就会被展开为 f a lt g a f a : g a ,这是 次调用,而不是想象中的先算f ...

2013-01-07 14:54 0 3859 推荐指数:

查看详情

[c++] 用定义一个函数

要点:变量都用括号括起来,防止出错,结尾不需要;。在实际编程中,不推荐把复杂的函数使用,不容易调试。多行用\ 要写好C语言,漂亮的定义是非常重要的。定义可以帮助我们防止出错,提高代码的可移植性和可读性等。 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数 ...

Tue Dec 05 00:52:00 CST 2017 0 4590
C/C++、内联函数和普通函数的区别

内联函数的执行过程与带参数定义很相似,但参数的处理不同。带参数的定义并不对参数进行运算,而是直接替换;内联函数首先是函数,这就意味着函数的很多性质都适用于内联函数,即内联函数先把参数表达式进行运算求值,然后把表达式的值传递给形式参数。 内联函数与带参数定义的另一个区别是,内联函数 ...

Thu Aug 13 18:46:00 CST 2015 0 6762
C++ macro(使用小结

  谈起C++中的,我们第一个想到的应该就是“#define”,它的基本语法长得像这样:   的声明和普通的函数声明很像,但是两者之间有本质的区别:C++函数在运行时(runtime)才执行代码段;而则是在预编译时期(preprocessor)执行代码段。下面简单介绍一下几个 ...

Mon Apr 04 08:49:00 CST 2016 0 2292
c++使用总结【转】

  C/C++总结C程序的源代码中可包括各种编译指令,这些指令称为预处理命令。虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境。   ANSI标准定义的C语言预处理程序包括下列命令:      #define,#error,#include,#if,#else,#elif ...

Tue May 17 12:41:00 CST 2016 0 4210
C++ 定义#define 中##的使用

C++定义中,符号##一般是用于连接,包括参数的连接,参数与标识符的连接等,然后形成一个新的标识符。 下面举几个例子来进行说明。 eg1: 或者不用#define ab "123456",直接在main函数中定义一个string ab ...

Wed Jul 05 17:59:00 CST 2017 0 8910
C++定义

C++ 定义将一个标识符定义为一个字符串,源程序中的该标识符均以指定的字符串来代替。预处理命令不同于一般C++语句。因此预处理命令后通常不加分号。这并不是说所有的预处理命令后都不能有分号出现。由于定义只是用名对一个字符串进行简单的替换,因此如果在定义命令后加了分号,将会连同分号一起进行置换 ...

Sun Nov 18 18:18:00 CST 2012 1 4068
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM