zoukankan      html  css  js  c++  java
  • C_Learning (4)

    / 预处理命令
      / 宏定义
        / 一般形式:#define 宏名 字符串
          # 表示这是一条预处理命令
          宏名是一个标识符,必须符合C语言标识符的规定
          字符串可以是常数、表达式、格式化字符串等
        / 注意:
        (1)如果在串中含有宏名,则不进行替换
        (2)如果串长于一行,可在行末尾用""续行
        (3)#define 出现在程序中函数的外面,宏名的有效范围为整个源文件
        (4)可以用#undef 终止宏定义的作用域
        (5)宏定义时参数要加括号,如不加括号,有时会引起错误
        (6)宏扩展必须使用括号来保护表达式中低优先级的操作符

      / #include 指令
        / 在一个源文件中使用#include 指令可以将另一个源文件的全部内容包含进来,且被读入的源文件必须使用双引号或者尖括号括起来
        / 双引号与尖括号的区别
          尖括号:系统到存放C函数库头文件所在的目录中寻找要包含的文件
          双引号:系统先在用户当前目录中寻找要包含的文件,若找不到,再到存放C函数库头文件所在的目录中寻找要包含的文件[在双引号中给出文件路径]
        / 头文件
          / 一般情况下,可将如下内容放入 .h 头文件中
          (1)宏定义
          (2)结构、联合和枚举声明
          (3)typedef 声明
          (4)外部函数声明
          (5)全局变量声明

      / 条件编译
        / 一般情况下,源程序中所有的行都参加编译,但有时只希望对一部分内容在满足一定条件时才进行编译,就需要使用一些条件编译命令
        / #if 条件编译指令
        (1)
        #if 参数表达式
        程序段
        #endif
        (2)
        #if 参数表达式1
        程序段1
        #else
        #if 参数表达式n
        程序段n
        #endif(n个)
        (3)
        #if 参数表达式1
        程序段1
        #elif 参数表达式n
        程序段n
        #endif
        如果参数表达式为真,则编译#if 和 #endif 之间的程序段,否则跳过不编译
      / #ifdef 条件编译指令
        #ifdef 宏替换名——如果宏替换名已被定义,则对语句段进行编译
        #ifndef 宏替换名——如果宏替换名未定义,则对语句段进行编译


      / #line 条件编译指令
        #line 用于改变 _LINE_ 与 _FILE_ 的内容,_LINE_ 用于存放当前编译行的行号,_FILE_ 用于存放当前编译的文件名
        #line 行号["文件名"]

      / #pragma 条件编译指令
        #pragma 的作用是设定编译器的状态,或者指示编译器完成一些特定的操作
        #pragma 参数
          参数包括:
          (1) Message: 在编译信息输出窗口中输出相应的信息
          (2) code_seg: 设置程序中函数代码存放的代码段
          (3) once: 保证头文件被编译一次

      / 预定义宏名
        _LINE_    当前被编译代码的行号
        _FILE_    当前源程序的文件名称
        _DATA_    当前源程序的创建日期
        _TIME_   当前源程序的创建时间
        _STDC_    判断当前编译器是否为标准C,若其值为1表示符合,否则不符合

  • 相关阅读:
    [LeetCode]题解(python):089-Gray Code
    [LeetCode]题解(python):088-Merge Sorted Array
    [LeetCode]题解(python):086-Partition List
    [LeetCode]题解(python):083-Remove Duplicates from Sorted List
    [LeetCode]题解(python):082-Remove Duplicates from Sorted List II
    [LeetCode]题解(python):081-Search in Rotated Sorted Array II
    [LeetCode]题解(python):080-Remove Duplicates from Sorted Array II
    [LeetCode]题解(python):079-Word Search
    [LeetCode]题解(python):078-Subsets
    软件开发冲刺5
  • 原文地址:https://www.cnblogs.com/jan5/p/3384554.html
Copyright © 2011-2022 走看看