简单的Linux基本操作,预处理标识符以及宏定义

1. linux环境实践,熟悉使用(网络搜索)

    ls //list 列出当前文件夹的所有文件

    cd //change directory 更改(切换)目录

    mkdir //make directory 创建目录(文件夹)

    rm //remove 删除文件(-f)

    mv //move 移动文件

    touch //创建文件

    pwd //print work directory打印当前工作目录 

简单的Linux基本操作,预处理标识符以及宏定义_第1张图片

2.在linux环境实践,使用vim编写一个程序,然后使用gcc查看【预处理】、【编译】、【汇编】、【链接】各阶段文件的内          容。并熟悉相关指令。

简单的Linux基本操作,预处理标识符以及宏定义_第2张图片

简单的Linux基本操作,预处理标识符以及宏定义_第3张图片

简单的Linux基本操作,预处理标识符以及宏定义_第4张图片

简单的Linux基本操作,预处理标识符以及宏定义_第5张图片

简单的Linux基本操作,预处理标识符以及宏定义_第6张图片

简单的Linux基本操作,预处理标识符以及宏定义_第7张图片

3. 熟悉预处理标识符:

__LINE__

__FILE__

__DATE__

__TIME__

#

##

(1)__LINE__:文件当前的行号;

(2)__FILE__:进行编译的源文件;

(3)__DATE__:文件被编译的日期;

(4)__TIME__:文件被编译的时间;

(5)#:把一个宏参数变成对应的字符串;

(6)##:把其两边的符号合成一个符号;

#define _CRT_SECURE_NO_WARNINGS

#include 

#include 

 

#define PRINT(X) printf("the "#X" is %d\n",100);

#define LINK(X,Y) X##Y

 

int main()

{

int num = 12;

 

printf("line:%d\n",__LINE__);

printf("file:%d\n",__FILE__);

printf("date:%d\n",__DATE__);

printf("time:%d\n",__TIME__);

printf("%d\n",LINK(nu,m));

system("pause");

return 0;

}

简单的Linux基本操作,预处理标识符以及宏定义_第8张图片

4. 了解宏和函数的区别。

区别有:宏比函数高效,当实现体极其简单时更明显;函数传不了类型,宏可以传类型;宏参不会自动求值只能替换;宏不能递归;宏命名约定上需全部大写等。

5. 写一个宏可以将一个数字的奇数位和偶数位交换。

拿出所有的奇数位,偶数位全为零,向左移动一位;拿出所有的偶数位,奇数位全为零,向右移动一位

#define _CRT_SECURE_NO_WARNINGS

#include 

#include 

 

#define EXCHANGE_BIT(X) (X = ((X & 0xaaaaaaaa) >> 1) | ((X & 0x55555555) << 1))

 

int main()

{

int num1 = 0;

int num2 = 0;

int even = 0;

int odd = 0;

printf("Please input the number:\n");

scanf("%d", &num1);

num2 = num1;

even = (num1 & 0xaaaaaaaa) >> 1;

odd = (num1 & 0x55555555) << 1;

num1 = even | odd;

printf("%d\n",num1);

EXCHANGE_BIT(num2);

printf("%d\n",num2);

system("pause");

return 0;

}

1. 使用宏实现两个数中求较大值。

#define _CRT_SECURE_NO_WARNINGS

#include 

#include 

 

#define MAX(X,Y) X > Y?X:Y

 

int main()

{

int a=2;

int b=3;

printf("%d\n",MAX(a,b));

system("pause");

return 0;

}






你可能感兴趣的:(简单的Linux基本操作,预处理标识符以及宏定义)