首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++的白痴有关问题

2012-02-29 
c++的白痴问题#includeiostreamusingnamespacestdvoidprintaaa(void)intmain(){printaaa()//就是个调

c++的白痴问题
#include   <iostream>
using   namespace   std;
void   printaaa(void);
       
int   main()
{
        printaaa();//就是个调用函数的问题
        return   0;
}

void   printaaa(void)
{
cout < < "aaaaaaaaaa ";
}

先声明我是菜鸟,看那个调用函数的那一句   printaaa();
①我改了它   改成                                           void   printaaa();
然后程序就什么也不显示了
②如果我改成     printaaa(void);   就连编译也通不过了

为什么?高手来解释一下这两个,,,谢谢了

[解决办法]
void printaaa(void);
这个在编译器看来是一个函数的声明而不是调用,所以当然就什么都不作了
[解决办法]
编译器龟定。
[解决办法]
你是什么编译器,VC6 OK
[解决办法]
函数声明中,返回类型的void不能省略,参数列表中的void可以省略,以下两种声明形式都可以:void printaaa();
或void printaaa(void);
函数声明可以放在所有函数外面或者某个函数内部,对函数的可见行不同(这是对C编译器而言,C++编译器不存在这个问题)
所以对于问题①,void printaaa();是声明,当然不会被执行

函数调用中,无参数传入时不能写void(void只用于声明),问题②的答案就很清楚了,呵呵
[解决办法]
C标准 无法嵌套声明
[解决办法]
C中函数声明:
void fun(void);
C++中的函数声明:
void fun();
[解决办法]
第一次那个,编译器将其视为声明,所以什么都不做;
第二次那个,编译器将其视为定义,由于不能嵌套定义,所以是一个错误。
[解决办法]
xiantongyuan() 的是正解,

热点排行