| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1039 人关注过本帖
标题:求教版主一些很粗浅的问题
只看楼主 加入收藏
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
结帖率:94.64%
收藏
已结贴  问题点数:100 回复次数:15 
求教版主一些很粗浅的问题
在学C的过程中,编译、链接、运行都是依靠IDE来进行的(VS2010、C-Free),这不像Java,下载一套JDK就行了,用命令编译、运行都很简单,多文件程序也是一样。
看过很多C的文献,里面很少是用命令来编译、链接、运行C程序的,而却是向我们推荐一款IDE,用IDE来帮助我们编译、链接、运行C程序。
问题(1):在同一目录中有以下C文件
程序代码:
//: header.h

void swap(int *, int *);

//:end
程序代码:
//: header.c
#include "header.h"

void swap(int * p1, int * p2) {
    *p1 ^= *p2;
    *p2 ^= *p1;
    *p1 ^= *p2;
}
程序代码:
//: test.c

#include <stdio.h>
#include "header.h"

int main(void) {
    int var1 = 2, var2 = 1;
    swap(&var1, &var2);
    printf("var1 : %d\tvar2 : %d\n", var1, var2);
    return 0;
}
test.c中用#include "header.h" 插入了swap()的声明。问题就是在IDE中如何链接header.c ?? (C-Free)
问题(2):在VS2010中如何运行单个文件的程序,而不用去建一个项目 ??
这是学习C以来我一直没弄懂的问题,Google、Baidu都没找到类似的问题,不知道是不是关键字没弄对,所以在这里请教一下版主。

[ 本帖最后由 lz1091914999 于 2011-5-13 09:26 编辑 ]
搜索更多相关主题的帖子: Java 
2011-05-13 09:23
wavewind
Rank: 3Rank: 3
来 自:浙江
等 级:论坛游侠
帖 子:34
专家分:101
注 册:2011-5-13
收藏
得分:0 
我记得是加一句:#include "header.c"
加在
//: header.h
#include "header.c"

void swap(int *, int *);

//:end


主程序部分不用修改的:
#include <stdio.h>
#include "header.h"

int main(void) {
    int var1 = 2, var2 = 1;
    swap(&var1, &var2);
    printf("var1 : %d\tvar2 : %d\n", var1, var2);
    return 0;




[ 本帖最后由 wavewind 于 2011-5-13 09:30 编辑 ]
2011-05-13 09:27
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
这样你就得把你的源代码给客户端程序员了?链接应该不是这个目的吧!

My life is brilliant
2011-05-13 09:34
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
只给客户端程序员实现的编译后的 .o\.obj文件就行了。

My life is brilliant
2011-05-13 09:36
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
IDE叫做集成开发环境,就是将预处理器、编译器、连接器整合成一个软件了,这个软件叫做:IDE

对于程序中的#include<>这样的文件包含是由预处理器处理的,就是将#include<>替换为文件中的内容。还有一些预处理的命令,比如:#pragma comment、#define、#ifndef、#ifdef.......

然后编译器会去编译每一个.c文件,编译器编译文件的原则是:以文件为单位,同时如果第一次编译之后,每一个文件进行了修改,则在第二次编译的时候就会编译修改的文件,而那些没有修改的文件就不会去再次编译!

最后就是连接器,连接器会将在编译阶段生成的.obj文件或者是.lib文件或者是.res文件链接到一起,生成最终的.exe可执行文件!

愿用余生致力编程
2011-05-13 09:43
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
楼上说的我都知道,但不是我问的问题。

My life is brilliant
2011-05-13 09:46
诸葛修勤
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:549
专家分:1955
注 册:2010-10-28
收藏
得分:5 
做成 库文件就可解决问题
2011-05-13 11:09
game88
Rank: 2
等 级:禁止发言
帖 子:23
专家分:27
注 册:2011-5-13
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2011-05-13 11:52
清风拂晓
Rank: 8Rank: 8
来 自:火星
等 级:蝙蝠侠
威 望:1
帖 子:356
专家分:889
注 册:2010-8-13
收藏
得分:5 
坐等真相

清风拂暮(木)
2011-05-13 12:38
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:20 
去看makefile

技术问题,请不要以短消息方式提问
2011-05-13 13:13
快速回复:求教版主一些很粗浅的问题
数据加载中...
 
   



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

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