首页 > 其他分享 >C语言-05

C语言-05

时间:2023-07-13 18:46:02浏览次数:39  
标签:01110 05 res 11011 C语言 异或 printf define

预处理

/*
    ---用 # 号开头的命令是预处理命令
    ---“预处理”即:预先处理,在编译前对代码进行一个预先处理
    
    include <文件.h>    // 这个是文件包含命令

    总上所述, # include <stdio.h>    即是:执行“预处理文件包含stdio.h”
*/

#  include

/*
    当 main.c 这个主文件越写越大的时候
    我们可以将它其中的某些部分,通过写到其他文件的方式
    来达到将代码有条理地进行布局分离的目的
    从而实现高效维护和管理的目标
    如同所示:
*/

 # define

/*
    1. # define 宏定义命令:使用一个表示符“表示”(或者说“完全替代”)一个字符串
    2. 语法:
        # define    宏名    字符串
*/

# include <stdio.h>

# define unint    unsigned int    // 宏名的规范写法为“全大写”,即 UNINT。
# define PI        3.14f
# define NAME    "tomato"
# define A        num * 2 + 1
# define B        (num * 2 + 1)

int main()
{    
    unint num = 1;
    printf("圆周率%f \n", PI);
    printf("我的名字%s \n", NAME);
    printf("结果%d \n", 3 * A);        // 结果:7
    printf("结果%d \n", 3 * B);        // 结果:9
    //printf("", );
    return 0;
}
# include <stdio.h>

# define M(x)        x*x+3*x
# define P(a,b)        a + b

int main()
{    
    int res = M(2);
    printf("结果为 %d \n", res);

    res = M(6);
    printf("结果为 %d \n", res);

    res = M(3 + 3);
    printf("结果为 %d \n", res);

    res = M(2 * 3);
    printf("结果为 %d \n", res);

    res = P(1, 2);
    printf("%d \n", res);

    return 0;
}

/*
    运行结果——————

        结果为 10
        结果为 54
        结果为 27
        结果为 54
        3
        请按任意键继续. . .
*/
# include <stdio.h>

# define    N(a,b)    a = a ^ b; b = a ^ b; a = a ^ b;    // ^ 异或,详情见底部
// 当一行内容过多的时候,可以用"\"符号实现“视觉上发生换行但代码本质还是一行”


int main()
{    
    int n = 9, m = 8;
    printf("%d %d \n", n, m);
    N(n, m);
    printf("%d %d \n", n, m);

    return 0;
}

/*
    运行结果——————

        9 8
        8 9
        请按任意键继续. . .
*/

/*
    上面的异或原理:(author:小六子,from:知乎)

        打个比方a=11011,b=10101a和b做异或得到 01110
        将他赋值给a,则a=01110(a=a^b,a承载着a和b的不同),接着将a(01110)和b(10101)做异或得 11011
        发现就是原来a的值
        于是将它赋值给b,b=11011,则b现在就是a原来的值了(b=a^b),再将a(01110)和b(11011)异或得10101
        发现就是原来b的值,将它赋值给a,a=10101,则a现在就是b原来的值(a=a^b)
        这样就实现了互换a和b的值
*/
# include <stdio.h>

# define    STR(s)    #s
# define    NUM1(a,b)    a##e##b        // 连接成aeb
# define    NUM2(a,b)    a##b##99    // 连接成ab99


int main()
{    
    printf("%s \n", "abc123");
    printf("%s \n", STR("abc123"));
    printf("%s \n", STR(abc123));

    printf("%f \n", NUM1(1.23, 3));        // 连接成aeb,即 1.23e3 => 1.23 * 1000
    printf("%d \n", NUM2(12, 5));        // 连接成ab99,即 12599

    return 0;
}

/*
    运行结果——————

        abc123
        "abc123"
        abc123
        1230.000000
        12599
        请按任意键继续. . .
*/


/*
    上面的异或原理:(author:小六子,from:知乎)

        打个比方a=11011,b=10101a和b做异或得到 01110
        将他赋值给a,则a=01110(a=a^b,a承载着a和b的不同),接着将a(01110)和b(10101)做异或得 11011
        发现就是原来a的值
        于是将它赋值给b,b=11011,则b现在就是a原来的值了(b=a^b),再将a(01110)和b(11011)异或得10101
        发现就是原来b的值,将它赋值给a,a=10101,则a现在就是b原来的值(a=a^b)
        这样就实现了互换a和b的值
*/

条件编译

 

标签:01110,05,res,11011,C语言,异或,printf,define
From: https://www.cnblogs.com/seventy/p/c-05.html

相关文章

  • Linux C语言之时间函数精讲
    @TOC当在LinuxC语言编程中需要处理时间相关的操作时,可以使用时间函数。时间函数提供了获取当前时间、进行时间转换和计算时间差等功能,对于日志记录、性能分析以及定时任务等场景非常有用。本文将详细介绍LinuxC语言中常用的时间函数,包括如何使用它们以及示例代码。前言在Lin......
  • 助教工作总结(高级语言程序设计C语言)
    一、助教工作的具体职责和任务1、与老师的配合:协助老师指导两次课程设计协助老师指导蓝桥杯、天梯赛2、与课程其他助教的配合:共同解决同学们课后的疑问并将出现的重点问题反馈给老师安排大作业并进行相应的指导,最后进行批改评分将最终成绩反馈给老师一起挑选有深度的题......
  • C语言动态分配内存的函数
    今天在学习中碰见了动态分配内存有关的函数:mallocrealloccallocfree。以下是详细的记录"动态内存":在程序运行期间,动态分配内存空间,一般是在"堆,heap"空间上分配。malloc:memoryallocate内存分配realloc:repeatallocate再分配——重新分配:一次内存分配完成之后,后面用......
  • 直接“printf”到char数组字符串——C语言snprintf函数
    注:我写这个只是为了备注并介绍一下这个神器。有关它的更详细用法,互联网的各个角落都不缺少资料。如果您和曾经的我一样是C语言的初学者,您有可能时常遇到那些“奇异”的字符串处理问题,例如,int里的数转成char数组字符串类型,在char数组中间插入或者删除什么东西,等等。要是采用传统方......
  • C语言-04
    自定义数据类型——初识/*引入:学生:姓名,学号,年龄,成绩请为学生们专门定制一个类型(创造一个类型)结构体格式:struct标识符//标识符即自定义类型的名称{成员;//自己设置};//这里要注意不要漏......
  • c语言学习4
    一、数组什么是数组:变量的组合,是一种批量定义相同类型变量的方式定义:类型名数组名[数量];intarr[5];注意:数组的长度一旦确定,无法改变使用:数组名[下标];下标:从0开始,范围:0~数量-1遍历:把数组的数据从头到尾显示或访问一般与for循环配合,把循环变量i当做数组下标初始化:类......
  • 05-虚拟内存
    05-虚拟内存5.1虚拟内存的起因理想中的存储器更大、更快、更便宜的非易失性存储器实际中的存储器典型存取速度存储器类型典型容量1nsecregisters<1KB2nseccache1MB10nsecmainmemory64-512MB10msecmagneticdisk5-50G100secmagneti......
  • 用c语言写一个计算自己活了多少天的代码
    #include<stdio.h>//初始化数组保存天数inta[12]={31,28,31,30,31,30,31,31,30,31,30,31};//普通年intb[12]={31,29,31,30,31,30,31,31,30,31,30,31};//闰年//判断闰年intLeap(intyear){if((year%4==0&&year%100!=0)||(year%400==0)){return1;......
  • C语言(四)
    目录9.结构体9.1引入9.2语法9.3位域与柔性数组9.3.1位域9.3.2柔性数组10.联合体11.枚举12.typedef关键字12.1typedef和struct12.2typedef和函数指针12.3typedef与#define的区别13.C程序组成13.1.c文件的组成13.1.1头文件包含13.1.2宏定义13.1.3声明13.1.4条件编译13.2.h文......
  • C语言库函数
    C语言库函数1.stdio库1.1printf函数printf格式化输出符:inta=3;floatb=3.14;doublec=5.2;chars1[6]={'h','e','l','l','o','\0'};char*s2="world";printf("%d%f%f\n",......