您的位置:首页 > 运维架构 > Linux

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

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



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













3. 熟悉预处理标识符:
__LINE__
__FILE__
__DATE__
__TIME__
#
##
(1)__LINE__:文件当前的行号;
(2)__FILE__:进行编译的源文件;
(3)__DATE__:文件被编译的日期;
(4)__TIME__:文件被编译的时间;
(5)#:把一个宏参数变成对应的字符串;
(6)##:把其两边的符号合成一个符号;
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <windows.h>
 
#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;
}



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

5. 写一个宏可以将一个数字的奇数位和偶数位交换。
拿出所有的奇数位,偶数位全为零,向左移动一位;拿出所有的偶数位,奇数位全为零,向右移动一位
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <windows.h>
 
#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 <stdio.h>
#include <windows.h>
 
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: