class xx{ int getnum(); //Is this a forward declaration or a prototype declaration and why?};int xx::getnum(){ return 1+3;}
所以这个问题已经在代码中得到了评论,但是:
是int getnum();前瞻性声明或原型声明,为什么?
解决方法 “前向声明”和“原型声明”这两个术语都没有在C标准中定义,因此非常严格地说,它既不是.这只是一个宣言.如果您想要更具体,可以将其称为非定义声明,或“不是定义的声明”.当在标准中使用“前向声明”一词时,它们用于引用声明但未定义它们声明的事物(函数或类)的声明.根据这种用法,int getnum()因此是一个前向声明.
函数的“原型声明”在标准(1)中使用得更少,并且主要是在谈论与[C]的兼容性时.但是,在使用时,它指的是与该函数的前向声明完全相同的概念.顺便说一下,你也可以调用int getnum();原型声明.
总而言之,术语“前向声明”和“原型声明”没有正式的定义,但从它们通常使用和理解的方式来看,int getnum();可以描述为.
(1)然而,标准中定义了类似术语“函数原型范围”(C 17 N4659 [basic.scope.proto] 6.3.4 / 1).它在非定义函数声明中建立函数参数名称的范围,它是最接近的封闭函数声明符.
总结以上是内存溢出为你收集整理的c – 原型声明和前向声明之间的区别?全部内容,希望文章能够帮你解决c – 原型声明和前向声明之间的区别?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)