C宏定义问题,我不明白

发布于 科技 2024-06-06
8个回答
  1. 匿名用户2024-01-29

    很多人在阅读**时都感到焦虑,一个地方和他们想象的不一样,开始怀疑,以为出现了什么神奇的东西,但实际上,这只是语法中最基本的东西的结合。

    宏是替换,因此打开的进程被以下段落替换。

    ctl 代码也看起来像一个宏,查找它并查看这是什么。 但是,语法不排除这是一个函数。 至于写长,这只是意味着宏或函数调用返回一个长类型的东西。

  2. 匿名用户2024-01-28

    似乎文件设备未知,方法缓冲,文件任何访问也是宏。

    符号是一行延续,即下一行被认为是行的内容。

    CTL 代码使用位运算符将四个参数合成为一个数字,看起来是 32 位,那么最后 32 位数字的前 16 位是 deviceType,接下来的两位是 access,接下来的 12 位是函数,最后两位是方法。

  3. 匿名用户2024-01-27

    C C++ 中的宏定义是定义一个符号常量,它用于定义一种符号信息来表示一些特殊信息,使源更具可读性,同时也可以提高系统的可移植性。 宏定义在编译时进行解释和替换,实际操作中没有宏定义符号。 一般变量或常量的定义在正在运行的系统中具有自己的内存空间、访问权限和生存期。

    宏定义常量。

    #define pi

    注意:1.符号常数和值2之间没有等号。该语句不需要以分号结尾。

    例如:define pi = 语法没有大问题,但应用中可能会有错误,编译时所有 pi 都会被替换为 '='

    #define pi ;语法没有大问题,但应用中可能会出现错误,编译时所有 pi 都会被替换为 ';

    变量定义。 double pi= ;定义变量 pi 会在内存中为变量 pi 分配一个空间,该空间存储在空间中,并且 pi 值可以在使用中随时更改,例如:pi=;

    常量定义。 const pi= ;因为没有写类型,所以默认是int类型,所以这里的pi值实际上是3

    const double pi= ;正确定义浮点常量。

    常量和变量的区别在于,一旦定义了常量,就不能修改了! 如果在使用过程中修改 PI,则在编译或运行时会发生错误,例如 VC6 错误

    error c2166: l-value specifies const object

    常量和宏定义常量的区别在于,宏定义在预处理阶段会用定义定义的内容替换 ** 中对应的标识符(编译时替换,编译后宏消失)。 因此,当程序运行时,常量表中没有定义 define 的常量,系统不会为其分配内存。

    由 const 定义的常量,当程序运行时,常量位于常量表中,系统为其分配内存。

  4. 匿名用户2024-01-26

    要说其实没有区别,主要是为了方便使用,宏观定义是一个常数,一般定义可以是常量也可以是可变的,另外,一般宏观定义是全局的,可以任意引用,一般定义有一定的范围。

  5. 匿名用户2024-01-25

    define pi= 在编译时替换双 pi= 变量,该变量可以重新赋值。

    在这两种情况下,当 pi 被多次使用时,它是由一个宏定义的,即定义 pi=

    const double pi=;常量变量,无法重新赋值。

  6. 匿名用户2024-01-24

    define pi= 在编译时替换。

    以下是在执行时分配单位的方法。

    double pi=;变量,可以重新赋值 const double pi=; 常量变量,无法重新赋值。

  7. 匿名用户2024-01-23

    define pi= 在编译时替换。

    下面是执行时间分配单元。

    双 pi= 变量可以重新分配。

    const double pi= 无法重新赋值常量变量。

    简单地说,double 可以重新分配,而 const 不能重新分配。

  8. 匿名用户2024-01-22

    生活领域和分配空间之间的区别。

    定义定义,宏将从当前文件生效,直到当前文件结束。

    并且编译时会进行宏扩展,Pi会自动被编译器替换,并且不会分配空间,double和const的定义将遵循变量生存域的一般原则。 也就是说,从当前到下一个" }".

    void test()

    这是 k 生存域的结束。

    double 为变量分配空间,const 为全局数据区域分配常量。

    由于定义定义没有空间,因此不能将指向宏的指针分配给变量或常量。

    编译时替换,因为在将源文件转换为可执行文件时,需要先编译和链接,然后才能生成可执行文件(exe),也就是说,在这个过程中,编译器直接将宏扩展到定义的内容中。

相关回答
18个回答2024-06-06

为了解决这个问题,C++创建了这个指针,这是一个特殊的指针,它指向它所在的类,所以。 >>>More

12个回答2024-06-06

int q2, *q1;回顾过去,Q2 是 int,Q1 是 int*。

14个回答2024-06-06

它是将 DAT 的值存储在加法器地址上,注意它是一个 16 位无符号数字。 >>>More

8个回答2024-06-06

sheets("原始数据").选择以选择原始数据表。

columns("c:bk").选择“C:BK”列。 >>>More

11个回答2024-06-06

你好,宏是用来预编译的,没有实质的东西,只是为了自己的好看,好读等。 只是一个完整的替代。 或者方便的**移植或类似的东西。 >>>More