| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5567 人关注过本帖
标题:error C2065: “S”: 未声明的标识符 文件包含问题 着急
只看楼主 加入收藏
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
这种包含法确实不规范,但不是不可以。但作为工程编译时应该只编译f1文件,f2由f1引用而不直接编译。

多年来VS我只用于写C#,而且现在VS也从我的系统里卸载很久了,出于兴趣转向需要现在在玩java和python。至于C/C++,windows下我用MinGW,linux下就是GCC。简单地执行gcc f1.c即可。

VS下应该修改项目配置文件,或者一个粗暴的方法是从项目里删除f2,但在项目文件夹里保留该文件(它应该与f1在同一目录下,以保证能够被引用到)。

重剑无锋,大巧不工
2014-11-03 21:29
FjC1990
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-11-2
收藏
得分:0 
新建文件夹.rar (866 Bytes)

这两天在外面  一直没有碰到电脑  看到了也没法发附件,不好意思。

最终还是借用头文件,其实我是想试试两个源文件的包含的。出现的问题:
1>------ 已启动生成: 项目: 1, 配置: Debug Win32 ------
1>生成启动时间为 2014/11/4 23:02:48。
1>InitializeBuildStatus:
1>  正在对“Debug\1.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1>  所有输出均为最新。
1>ManifestResourceCompile:
1>  所有输出均为最新。
1>vt.obj : error LNK2005: "void __cdecl func(int,int)" (?func@@YAXHH@Z) 已经在 ceshi.obj 中定义
1>d:\users\administrator\documents\visual studio 2010\Projects\1\Debug\1.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
1>
1>生成失败。
1>
1>已用时间 00:00:00.32
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
2014-11-04 23:03
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 12 楼 FjC1990
我这里测试没问题  我的测试环境是xp+vs2010

DO IT YOURSELF !
2014-11-05 08:21
FjC1990
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-11-2
收藏
得分:0 
[local]1[/local]
非常不好意思!前面两天在外面,看到了没法回。昨晚回复,今天一看因为网络原因没有成功。非常遗憾。
我最终是借助头文件来弄调用文件。其实我的最想试试的是两个同格式文件的包含,并不希望借助头文件。
附近运行的问题:

1>------ 已启动生成: 项目: 1, 配置: Debug Win32 ------
1>生成启动时间为 2014/11/5 11:10:42。
1>InitializeBuildStatus:
1>  正在对“Debug\1.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1>  所有输出均为最新。
1>ManifestResourceCompile:
1>  所有输出均为最新。
1>vt.obj : error LNK2005: "void __cdecl func(int,int)" (?func@@YAXHH@Z) 已经在 ceshi.obj 中定义
1>d:\users\administrator\documents\visual studio 2010\Projects\1\Debug\1.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
1>
1>生成失败。
1>
1>已用时间 00:00:03.88
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
2014-11-05 11:14
米兰达斯
Rank: 3Rank: 3
来 自:Earth
等 级:论坛游侠
威 望:3
帖 子:27
专家分:102
注 册:2014-10-24
收藏
得分:0 
我这样在我这是可以的:
程序代码:
#include<stdio.h>
int s; 
int c;
#include "Text1.h"
void main()
{
    void fuc(int x,int y);
int x;
int y;
printf("请输入长和宽:\n");
scanf("%d%d",&x,&y);
fuc(x,y);
printf("%d,%d\n",s,c);
}
Text1里是:
程序代码:
void fuc(int x,int y)
{s=x*y;
c=2*(x+y);
}
  然后试着把Text1.h重命名为f2.c 运行也可以、

[ 本帖最后由 米兰达斯 于 2014-11-5 14:05 编辑 ]
2014-11-05 13:38
快速回复:error C2065: “S”: 未声明的标识符 文件包含问题 着急
数据加载中...
 
   



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

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