C语言部分知识点复习

C语言部分知识点复习

位运算符

  • 通过按位或操作,添加未处理的任务事件到任务事件数组。

     tasksEent[idx] |= events
  • 提取系统类事件

     events & SYS_EVENT_MSG
  • 清除系统类事件

     events ^ SYS_EVENT_MSG

C语言编译过程

C语言要生成可执行程序,需要经过预处理、编译、汇编、和链接四部分。

(1)预处理

  • 展开所有宏定义(#define),进行字符替换。

  • 处理所有条件编译指令(#ifdef、#ifndef、#endif)

  • 处理文件包含(#include),将包含的文件直接插入到语句所在处。

  • 删除所有注释;

  • 添加行号和文件标识,以便在调试和编译出错时快速定位到错误。

编译和预处理

  • #define 又称宏定义,标识符为所定义的宏名,简称宏。

  • 不带参数的宏定义1

#define 标识符 字符串

 #include<stdio.h>
 #define L 4
 #define W
 int main(){
     int area;
     area=L*W;
     printf("area=%d\n",area);
     return 0;
 }
  • 不带参数的宏定义2

    • #define 标识符

  • 不关注标识符被定义成了什么,只关注它是否被定义过

  • 带参数的宏定义

    • #define 标识符(形参表)字符串

 #include<stdio.h>
 #define SWAP(a,b)  {int temp;temp=a;a=b;b=temp;}
 int main(){
     int i,j;
     int a[5]={3,4,5,6,7};
     int b[5]={5,6,7,8,9};
     for(i=0;i<5;i++)SWAP(a[i],b[i]);
     printf(“After swaping:\n”);
     for(i=0;i<5;i++)printf(“%d”,a[i]);
     printf(“\n”);
     for(i=0;i<5;i++)printf(“%d”,b[i]);
     printf(“\n”);
     return 0;
 }

宏定义允许嵌套

 #define PI 3.141592
 #define P PI*x
 printf("%f",P)
  • 宏替换后的语句为:

 printf("%f"3.141592*x)

宏定义允许嵌套

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值