| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6953 人关注过本帖
标题:一个在VC++中 后缀名为 .C 和 'CPP 的区别?
只看楼主 加入收藏
wgkrd
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-5-22
结帖率:0
收藏
已结贴  问题点数:20 回复次数:12 
一个在VC++中 后缀名为 .C 和 'CPP 的区别?
#include <stdio.h>
int main(void)
{
    for(int i=0; i<10; i++)
    {
        printf("%d\n",i);
    }
    return 0;
}

分别命名为 main.c 和 main.cpp
命名为main.cpp 时正常.
当命名为 main.c 时报错,报错信息如下,
Compiling...
main.c
D:\workspace\test\1.c(5) : error C2143: syntax error : missing ';' before 'type'
D:\workspace\test\1.c(5) : error C2143: syntax error : missing ';' before 'type'
D:\workspace\test\1.c(5) : error C2143: syntax error : missing ')' before 'type'
D:\workspace\test\1.c(5) : error C2143: syntax error : missing ';' before 'type'
D:\workspace\test\1.c(5) : error C2065: 'i' : undeclared identifier
D:\workspace\test\1.c(5) : warning C4552: '<' : operator has no effect; expected operator with side-effect
D:\workspace\test\1.c(5) : error C2059: syntax error : ')'
D:\workspace\test\1.c(6) : error C2143: syntax error : missing ';' before '{'
执行 cl.exe 时出错.

1.obj - 1 error(s), 0 warning(s)

为什么?我是新手,请大学不吝指教.
搜索更多相关主题的帖子: return test 
2011-05-22 11:20
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:2 
.c是C文件的后缀 .cpp是c++文件的后缀!

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-05-22 11:21
wgkrd
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-5-22
收藏
得分:0 
回复 2楼 liangjinchao
也就是说在在命名为 main.c 时,修改代码为
#include <stdio.h>
int main(void)
{
    int i;
    for(i=0; i<10; i++)
    {
        printf("%d\n",i);
    }
    return 0;
}
是可以正常运行的,为什么改了以后就不行了,原因是什么呗?
2011-05-22 11:24
top_dada
Rank: 2
等 级:论坛游民
帖 子:35
专家分:26
注 册:2011-4-20
收藏
得分:2 
#include<>;这文件不正确。。没有通过编译器。。如果你改成.CPP#inlcude<iostream.h>要改成这样。。你试下!
2011-05-22 16:15
考伊斯
Rank: 2
来 自:陕西西安
等 级:论坛游民
帖 子:99
专家分:70
注 册:2010-11-27
收藏
得分:2 
你要是学C语言就是.c   
要是学C++就是.cpp
stdio.h是C语言输入输出函数的头文件
iostream.h是C++输入输出函数的头文件。

————————学海无涯、不耻下问------------------------------                    
2011-05-22 16:30
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:2 
.c这两个主要是采用的编译器不一样,.c文件是c语言的源文件,采用的是c语言的编译器,.cpp文件是c++的源文件,采用的是c++的编译器。

其实这个并不是什么太大的区别,有时候我们建立一个.c文件,里面写的是c++的代码,也能够编译,但是生成的内部调用函数名是不一样的,主要有三种调用约定,_cdecl 、_stdcall 和_fastcall,一种调用约定生成一种函数名!

愿用余生致力编程
2011-05-22 16:45
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
楼主写的main.c文件中的那个for循环里面有这样一个定义:int i=0,编译不通过,是因为c语言的编译器不允许这样做!

愿用余生致力编程
2011-05-22 16:48
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
收藏
得分:2 
具体不同的编译器 运算结果就可能不一样
2011-05-22 18:39
zhwhichyou
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2011-5-26
收藏
得分:2 
原因很简单,但是不常常被注意

2011-05-26 09:50
王者自谦1992
Rank: 2
等 级:论坛游民
帖 子:57
专家分:74
注 册:2011-4-6
收藏
得分:2 
你要是学C语言就是.c   
 要是学C++就是.cpp
 stdio.h是C语言输入输出函数的头文件
 iostream.h是C++输入输出函数的头文件。

是这样的的
2011-05-26 11:52
快速回复:一个在VC++中 后缀名为 .C 和 'CPP 的区别?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015776 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved