更多“在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”?”相关问题
  • 第1题:

    C++语言兼容C语言,因此,(32)。

    A.C++的数据类型与C语言的数据类型完全相同

    B.C++编译器能编译C语言程序

    C.C++的关键字与C语言的关键字完全相同

    D.C++编译器能把C语言程序翻译成C++程序


    正确答案:B
    解析:C++语言在C语言的基础上进行了扩充。从语法角度来看,C语言的所有结构也是C++的组成部分,同时这些语法结构的语法也得到保持,因此,C++是完全兼容C语言的,那么C++编译器就能正确编译C语言程序。

  • 第2题:

    C++语言兼容C语言,因此,______。

    A.C++的关键字与C语言的关键字完全相同

    B.C++的数据类型与C语言的数据类型完全相同

    C.CA++编译器能编译c语言程序

    D.C++编译器能把C语言程序翻译成C++程序


    正确答案:C
    解析:C++由C语言发展而来,C++在C语言的基础上扩展了面向对象部分。C++的关键字与C语言的关键字不完全相同,C++扩展了新的关键字,如关键字new、const,C语言中就没有new、const;C++的数据类型与C语言的数据类型也不完全相同,如C++中有逻辑布尔型bool、类类型class,而C中没有。显然,C++编译器能编译C语言程序,但反之则不一定行。

  • 第3题:

    以下说法中正确的是 ______。

    A.C++程序总是从第一个定义的函数开始执行的

    B.在C++程序中,要调用的函数必须在main()函数中定义的

    C.C++程序总是从main()函数开始执行的

    D.C++程序中的main()函数必须放在程序的开始部分


    正确答案:C

  • 第4题:

    在 C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明?


    正确答案:
     

  • 第5题:

    C++语言兼容C语言,所以,______。

    A.C++的关键字与C语言的关键字完全相同

    B.C++的数据类型与C语言的数据类型完全相同

    C.C++编译器能编译C语言程序

    D.C++编译器能把C语言程序翻译成C++程序


    正确答案:C
    解析:C++语言兼容C语言,也就是C++语言在C语言的基础上进行了扩充。C语言的所有结构也是C++的组成部分,也就是说,C++完全兼容C语言,C++编译器能正确编译C语言程序。本题正确答案为选项C。

  • 第6题:

    下列关于编程优化的说法正确的是()

    • A、使用编译器的优化选项后程序性能一定会获得提高
    • B、循环展开得越多越彻底,程序的性能越好
    • C、寄存器分配能够解决程序中的数据依赖问题
    • D、现代主流C/C++编译器可以对简单的小函数进行自动Iinline

    正确答案:D

  • 第7题:

    假设某个函数的原型为:void foo( int x, int y ); 该函数分别被C编译器和C++编译器编译后在符号库中的名字是什么?


    正确答案:该函数被C编译器编译后在符号库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字(不同的编译器可能生成的名字不同,但是都采用了相同的机制,生成的新名字称为“mangled name”)。_foo_int_int 这样的名字包含了函数名、函数参数数量及类型信息,C++就是靠这种机制来实现函数重载的。

  • 第8题:

    C语言中()可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。

    • A、typedef
    • B、ifdef
    • C、define
    • D、extern

    正确答案:D

  • 第9题:

    用类创建对象时,由编译器自动调用()来实现。

    • A、内联函数
    • B、友员函数
    • C、构造函数
    • D、析构函数

    正确答案:C

  • 第10题:

    单选题
    下列关于编程优化的说法正确的是()
    A

    使用编译器的优化选项后程序性能一定会获得提高

    B

    循环展开得越多越彻底,程序的性能越好

    C

    寄存器分配能够解决程序中的数据依赖问题

    D

    现代主流C/C++编译器可以对简单的小函数进行自动Iinline


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

  • 第11题:

    问答题
    编译器通过匹配过程确定函数调用时调用哪种类型的函数,那么什么情况下进行匹配会造成编译错误?

    正确答案: 用相同参数表生成重载函数将产生语法错误。
    解析: 暂无解析

  • 第12题:

    问答题
    在QT程序中可以调用被C 编译器编译后的函数吗?如果可以怎么实现?

    正确答案: 可以,通过加“extern "C"” 连接申明,被extern "C"修饰的变量和函数是按照C语言方式编译和连接的
    解析: 暂无解析

  • 第13题:

    下列关于C++函数的说明中,正确的是( )。

    A.内联函数就是定义在另一个函数体内部的函数

    B.函数体的最后一条语句必须是return语句

    C.标准C++要求在调用一个函数之前,必须先声明其原型

    D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式


    正确答案:C
    解析:选项A)中,内联函数不是定义在另一个函数体内部的函数,而是将incline放在函数定义中函数类型之前:函数体的最后一条语句可以是任意的语句,选项B)错误;编译器不会根据函数返回值的类型来区分重载形式,选项D)错误。标准C++要求在调用一个函数之前,必须先声明其原型,选项C)正确。

  • 第14题:

    下列关于C++函数的描述中正确的是( )。

    A.主函数是程序的入口,它由用户定义的函数调用

    B.函数在调用之前必须先被声明

    C.每个用户定义的函数只能被其他函数调用一次

    D.函数是C++中面向对象程序设计框架的基本组成单元


    正确答案:B

  • 第15题:

    从一个函数模板产的模板函数是同名的,因此编译器用______的解决方法调用相应函数。


    正确答案:重载
    重载

  • 第16题:

    C/C++编译器中虚表是如何完成的?


    正确答案:
     

  • 第17题:

    ●以下关于C语言与C++语言的叙述中,正确的是(32)。

    (32)

    A.只要将C程序的扩展名.c改为.cpp,就可将过程式的C程序转换为面向对象的C++程序

    B.由于C++是在C的基础上扩展的,所以C++编译器能编译C源程序

    C.在C程序中,也可以用结构体类型定义类

    D.与C不同,C++程序中的函数必须属于某个类


    正确答案:B

  • 第18题:

    编译器通过匹配过程确定函数调用时调用哪种类型的函数,那么什么情况下进行匹配会造成编译错误?


    正确答案:用相同参数表生成重载函数将产生语法错误。

  • 第19题:

    在QT程序中可以调用被C 编译器编译后的函数吗?如果可以怎么实现?


    正确答案:可以,通过加“extern "C"” 连接申明,被extern "C"修饰的变量和函数是按照C语言方式编译和连接的

  • 第20题:

    在C++中编译器所生成的文件的扩展名为()

    • A、.cpp
    • B、.obj
    • C、.lib
    • D、.exe

    正确答案:B

  • 第21题:

    以下对C++函数的有关描述中,正确的是()。

    • A、C调用函数时,只能把实参的值传给形参,形参的值不能传递给实参
    • B、C++函数既可以嵌套定义又可以递归调用
    • C、函数必须有返回值,否则不能使用函数
    • D、C++程序中有调用关系的所有函数必须放在同一源程序文件中

    正确答案:A

  • 第22题:

    问答题
    假设某个函数的原型为:void foo( int x, int y ); 该函数分别被C编译器和C++编译器编译后在符号库中的名字是什么?

    正确答案: 该函数被C编译器编译后在符号库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字(不同的编译器可能生成的名字不同,但是都采用了相同的机制,生成的新名字称为“mangled name”)。_foo_int_int 这样的名字包含了函数名、函数参数数量及类型信息,C++就是靠这种机制来实现函数重载的。
    解析: 暂无解析

  • 第23题:

    单选题
    用类创建对象时,由编译器自动调用()来实现。
    A

    内联函数

    B

    友员函数

    C

    构造函数

    D

    析构函数


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