宏的学习
宏的基本概念
#define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。
(1) 无参数宏定义:
#define <宏名> <字符串>
例: #define PI 3.1415926(2) 带参数的宏定义
#define <宏名> (<参数表>) <宏体>
例: #define A(x) x
+(3)用于条件编译:
(常用形式) #ifndef _AAA_H #define _AAA_H
找到了一篇讲的很好的宏定义#define的用法的文章
宏定义中容易出错的问题
- 标识符的命名必须合法
- 标识符应当有足够清楚的名字以方便阅读代码
- 宏所带表的是宏体中的整体,而不是宏体所计算出的值,所以我们应该注意在编译之后所出现的运算顺序问题,一般解决办法是打括号
*但是当括号的数量过大,就容易多或少(尤其是没有自动检查的IDE)
任务
#define N(x,y) ( (x/y)*y ) //第一三题同一解
#define M(x,y) ( ((x/y)+1)*y )//第二四题同一解
确实没有知道在本题中优化算法可以用在哪,算2^n倒是可以用二分法