声明类对象加括号与声明指针对象加括号的问题

Posted 17岁boy想当攻城狮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了声明类对象加括号与声明指针对象加括号的问题相关的知识,希望对你有一定的参考价值。

有的时候我们会在代码里看到这样的声明:

Test a();    //class
char* b();    //ptr

有时候你会看到它出现在作用域里

int main()

    Test a();
    char* b();

    return 0;

大家不要被它的表面迷惑,其实这就是一个函数声明,在c99的编译器里是不允许这么写的,其实完整的写法应该是:

  extern Test a();
  extern char* b();

只是随着编译器的迭代,逐渐对写法不在有那么多规范的限制,这种写法是不规范的,这样的写法实际上就是声明一个函数而已,并且告诉编译器定义在别的文件中,并且随着编译器的提升你可以不加"extern",编译器会自动去别的文件寻同原型的函数定义并调用它。

以上是关于声明类对象加括号与声明指针对象加括号的问题的主要内容,如果未能解决你的问题,请参考以下文章

13 类对象的声明中加小括号{}和不加小括号{}的区别

对象/函数/类声明周围的括号是啥意思? [复制]

JS 中函数名后面加与不加括号的区别

PHP面向对象之抽象类

ES6浅谈--解构,字符串扩展

js调用函数时加括号与不加括号的区别