简答题

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

正确答案

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

答案解析

相似试题
  • 假设某个函数有多个变种,这些变种保持函数的行为,又具有不同的性能特性,对于其中的三个变种,我们发现运行时间(以时钟周期为单位)可以用下面的函数近似的估计 版本1:60+35n 版本2:136+4n 版本3:157+1.25n 问题是当n=2时,哪个版本最快?()

    单选题查看答案

  • 假设某个函数有多个变种,这些变种保持函数的行为,又具有不同的性能特性,对于其中的三个变种,我们发现运行时间(以时钟周期为单位)可以用下面的函数近似的估计 版本1:60+35n 版本2:136+4n 版本3:157+1.25n 问题是当n=5时,哪个版本最快?()

    单选题查看答案

  • 假设某个函数有多个变种,这些变种保持函数的行为,又具有不同的性能特性,对于其中的三个变种,我们发现运行时间(以时钟周期为单位)可以用下面的函数近似的估计 版本1:60+35n 版本2:136+4n 版本3:157+1.25n 问题是当n=10时,哪个版本最快?()

    单选题查看答案

  • 考虑下面的函数: int min(int x,int y){return xint max(int x,int y){return x>y?x:y;} 对于下面的代码: t=0; for(i=max(x,y);i>=min(x,y);i--) t+=i; 假设x=1,y=100,则可以得到函数调用的次数为()

    单选题查看答案

  • 以下正确的函数原型为()

    单选题查看答案

  • 考虑两条指令i和j,假设i先进入流水线,由此可能带来数据相关。j的执行要用到i的计算结果,在i写入之前,j先去读,j读出的内容是错误的,这种数据相关为()相关。j可能在i读取某个源寄存器的内容之前就先对该寄存器进行写操作,导致i后来读到的值是错误的,这种数据相关为()相关。

    填空题查看答案

  • 试编写算法,计算的i!*2i值并存入数组a[0..arrsize-1]的第i-1个分量中(i=1,2,…,n)。假设计算机中允许的整数最大值为maxint,则当n>arrsize或对某个k(1≤k≤n),使k!·2k>maxint时,应按出错处理。注意选择你认为较好的出错处理方法。

    简答题查看答案

  • 假定AB为一个类,则()为该类的拷贝构造函数的原型说明。

    单选题查看答案

  • 若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字()放在函数原型或函数头的前面。

    单选题查看答案