码迷,mamicode.com
首页 > 其他好文 > 详细

程序环境和预处理

时间:2018-04-24 21:52:50      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:创建文件   函数的参数   linux   lin   move   除了   更改   导致   line   

1.linux环境实践,熟悉使用(网络搜索)
ls//list列出当前文件夹的所有文件
cd//change directory更改(切换)目录
mkdir//make directory创建目录(文件夹)
rm//remove删除文件
mv//move移动文件
touch//创建文件
pwd//print work directory打印当前工作目录


3.熟悉预处理标识符:
__LINE__     : 文件当前的行号
__FILE__     :  进行编辑的源文件
__DATE__   : 文件被编辑的日期
__TIME__    : 文件被编辑的时间


4.宏和函数的区别:
   其区别主要表现在:代码长度、执行速度、操作符优先级、参数求值、参数类型这几方面。

 代码长度:

    #define 宏:每次使用时,宏代码都被插入到程序中。除了非常小的宏之外,程序的长度将大幅度增长。

    函数:函数代码只出现于一个地方;每次使用这个函数时,都调用那个地方的同一份代码。

 执行速度:

    #define 宏:更快。

    函数:存在函数调用/返回的额外开销。

 操作符优先级:

    #define 宏:宏参数的求值是在所有周围表达式的上下文环境中,除非他们加上括号,否则邻近操作符的优先级可能会产生不可预料的结果。

    函数:函数参数只在函数调用时求值一次,他的结果值传递给函数。表达式的求值结果更容易预测。

 参数求值:

    #define 宏:参数每次用于宏定义时,他们都将重新求值。由于多次求值,具有副作用的参数可能会产生不可预料的结果。

    函数:参数在函数被调用时求值一次,在函数中多次使用参数并不会导致多种求值过程。参数的副作用并不会导致任何特殊的问题。

 参数类型:

    #define 宏:宏与类型无关。

    函数:函数的参数与类型有关。如果参数的类型不同,就需要使用不同的函数,即使他们执行的任务是相同的。

 

5.写一个宏可以将一个数字的奇数位和偶数位交换。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#define SWAP(x)\
 (((x&(0x55555555)) << 1) | ((x&(0xAAAAAAAA))>>1))//十六进制
//提取x的奇数位并左移一位,偶数位并右移一位

int main()
{
 int x = 5;
 printf("%d\n", SWAP(x));
 system("pause");
 return 0;
}


6.使用宏实现两个数中求较大值。
#include <stdio.h>
#define MAX(a,b)\
 ((a) > (b) ? (a) : (b))
int main()
{
 int a = 5;
 int b = 10;
 printf("%d\n", MAX(a, b));
 system("pause");
 return 0;
}

 

程序环境和预处理

标签:创建文件   函数的参数   linux   lin   move   除了   更改   导致   line   

原文地址:https://www.cnblogs.com/lsiyu/p/8933433.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!