更多“Define宏语句和inline函数有什么区别?”相关问题
  • 第1题:

    #define能作简单的替代,用宏来替代计算多项式5*x*x+5*+5的值的函数f,正确的宏定义语句为( )。

    A.#definef(x)5*x*x+5*+5

    B.#definef5*x*x+5*x+5

    C.#definef(a) (5*a*a+5*a+5)

    D.#define5*x*x+5*+5f(x)


    正确答案:C
    解析:带参数宏的格式:#define标识符(形参表)形参表达式。其功能:在预处理程序中将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。

  • 第2题:

    设有以下宏定义:#define N 3#define Y(n) ((N+1)*n)则执行以下语句后,z的值为______。z=2 * (N+Y(5+1));

    A.出错

    B.42

    C.48

    D.54


    正确答案:C

  • 第3题:

    static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?


    正确答案:
    全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。
    从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。
    static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件

    static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;
    static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;
    static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝

  • 第4题:

    #define 能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为( )。

    A.#define f(x)5*x*x+5*x+5

    B.#define f5*x*x+5*x+5

    C.#define f(a)(5*a*a+5*a+5)

    D.#define(5*x*x+5*x+5)fx)


    正确答案:C
    解析:带参数宏的格式为:#define标识符(形参衰) 形参表达式。其功能是:预处理程序将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。

  • 第5题:

    以下说法正确的是______。

    A.#define和scanf都是C语句

    B.#define是C语句,而scanf不是

    C.#define和scanf都不是C语句

    D.#define不是C语句,scanf是


    正确答案:C

  • 第6题:

    在 ______ 情况下适宜采用inline定义内联函数。

    A.函数体含有循环语句

    B.函数体含有递归语句

    C.函数代码少、频繁调用

    D.函数代码多、不常调用


    正确答案:A

  • 第7题:

    若有以下宏定义:  #define  N  2  #define  Y(n)  ((N+1)*n)  则执行赋值语句z=2*(N+Y(5));后,变量z的值是多少?


    正确答案:变量z的值是34

  • 第8题:

    表示一个语句是宏定义语句的标识符是()。

    • A、include
    • B、#include
    • C、define
    • D、#define

    正确答案:D

  • 第9题:

    以下有关宏定义的叙述,正确的是()

    • A、宏名必须用大写字母表示
    • B、带参数的宏就是一个函数
    • C、宏名不具有类型
    • D、宏定义和其它C语句,其末尾要加分号

    正确答案:C

  • 第10题:

    问答题
    typedef和define有什么区别?

    正确答案: (1)用法不同:typedef 用来定义一种数据类型的别名,增强程序的可读性。define 主要用来定义常量,以及书写复杂使用频繁的宏。
    (2)执行时间不同:typedef 是编译过程的一部分,有类型检查的功能。define 是宏定义,是预编译的部分,其发生在编译之前,只是简单的进行字符串的替换,不进行类型的检查。
    (3)作用域不同:typedef 有作用域限定。define 不受作用域约束,只要是在 define 声明后的引用都是正确的。
    (4)对指针的操作不同:t ypedef 和 define 定义的指针时有很大的区别。
    注意:typedef 定义是语句,因为句尾要加上分号。而 define 不是语句,千万不能在句尾加分号。
    解析: 暂无解析

  • 第11题:

    问答题
    Define宏语句和inline函数有什么区别?

    正确答案: 嵌入式系统平台通常存储资源有限,但同时又对实时性有一定的要求,二者如何权衡需要考虑。Define宏语句相对于函数调用能提高运行时间性能,但消耗了 空间,并且不标准的宏语句定义在不标准的编码中更容易出现副作用,因此inline函数则是define语句的完美替代品。
    解析: 暂无解析

  • 第12题:

    问答题
    若有以下宏定义:  #define  N  2  #define  Y(n)  ((N+1)*n)  则执行赋值语句z=2*(N+Y(5));后,变量z的值是多少?

    正确答案: 变量z的值是34
    解析: 暂无解析

  • 第13题:

    当需要将一个函数bool isnumber(char c)声明为内联函数时,则此内联函数的函数原型为( )。

    A.enum bool isnumber(char c);

    B.define bool isnumber(char c);

    C.inline bool isnumber(char c);

    D.extem bool isnumber(char c);


    正确答案:C
    解析: 本题考查的是内联函数的相关知识点。函数原型应指出函数名、返回值类型以及在调用函数时知心朋友提供的参数的个数和类型,因为要声明为内联函数,故应加inline关键宇。

  • 第14题:

    #define能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为( )。

    A.#definef(x)5*x*x+5*x+5

    B.#definef5*x*x+5*x+5

    C.#definef(a)(5*a*a+5*a+5)

    D.#define(5*x*x+5*x+5)f(x)


    正确答案:C
    解析: 带参数宏的格式为:#define标识符(形参表)形参表达式。其功能:预处理程序将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。

  • 第15题:

    以下说法中,正确的是______。

    A.#define和printf都是C语句

    B.#define是C语句,而printf不是

    C.printf是C语句,但#define不是

    D.#define和printf都不是C语句


    正确答案:C

  • 第16题:

    #define能做简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为( )。A.

    B.

    C.

    D.

    A.A

    B.B

    C.C

    D.D


    正确答案:C
    本题考查带参数宏的格式:#define标识符(形参表)形参表达武。其功能是:把预处理程序中出现的所有带实参的宏名,展开形成由实参组成的表达式。故C正确。

  • 第17题:

    在下列叙述中,正确的一条是_______。

    A.#define printf都是C语句

    B.#define是C语句,而priatf不是

    C.printf是C语句,但#define不是

    D.#define和printf都不是C语句


    正确答案:D

  • 第18题:

    在下述哪种情况下适宜采用inline定义内联函数。()

    • A、函数体含有循环语句
    • B、函数体含有递归语句
    • C、函数代码少、频繁调用
    • D、函数体含有switch语句

    正确答案:C

  • 第19题:

    什么是兼语句,兼语句有哪些特点,兼语句和主谓短语作宾语句有什么区别?


    正确答案: 兼语句是由兼语短语充当谓语的句子。典型的兼语句前一动词经常是“使、叫、让、请、派、催、逼、劝、留、求、托、强迫、推举、督促、组织、召集”等表示使令和促成意义的动词,例如:“我请你吃饭。”也有的兼语句前边的动词没有使令意义,例如:“他给孙子起了个名字叫贝贝。”兼语句的前一动词也可以是“有”或表示存现的动词,例如:“他还有几个同学睡在床上:”“外面还来了许多人要参观。”
    兼语句的前一动词多含使令意义,有一动词和兼语构成述宾关系,例如:“他们派老王担任这个职务。”主谓作宾句的前一动词多表示感知意义,它和整个主谓短语构成述宾关系。例如:“他们同意老王担任这个职务。”这两种句子的语音停顿也不同,兼语句前一动词后不能停顿,只能在兼语后边停顿,主谓作宾句可以在前一动词后边停顿。

  • 第20题:

    typedef和define有什么区别?


    正确答案: (1)用法不同:typedef 用来定义一种数据类型的别名,增强程序的可读性。define 主要用来定义常量,以及书写复杂使用频繁的宏。
    (2)执行时间不同:typedef 是编译过程的一部分,有类型检查的功能。define 是宏定义,是预编译的部分,其发生在编译之前,只是简单的进行字符串的替换,不进行类型的检查。
    (3)作用域不同:typedef 有作用域限定。define 不受作用域约束,只要是在 define 声明后的引用都是正确的。
    (4)对指针的操作不同:t ypedef 和 define 定义的指针时有很大的区别。
    注意:typedef 定义是语句,因为句尾要加上分号。而 define 不是语句,千万不能在句尾加分号。

  • 第21题:

    单选题
    在下述哪种情况下适宜采用inline定义内联函数。()
    A

    函数体含有循环语句

    B

    函数体含有递归语句

    C

    函数代码少、频繁调用

    D

    函数体含有switch语句


    正确答案: B
    解析: 暂无解析

  • 第22题:

    单选题
    表示一个语句是宏定义语句的标识符是()。
    A

    include

    B

    #include

    C

    define

    D

    #define


    正确答案: C
    解析: 暂无解析

  • 第23题:

    单选题
    适宜采用inline定义函数情况是()
    A

    函数体含有循环语句

    B

    函数体含有递归语句

    C

    函数代码少、频繁调用

    D

    函数代码多、不常调用


    正确答案: C
    解析: 暂无解析