c语言多文件编程,怎么创建和编译一个多文件程序

1 , 怎么创建和编译一个多文件程序有2中方法:1. 一种是大程序的功能分散成许多小程序,最后写个总程序,用system()函数调用小功能 。2. 最好弄懂(至少会用)#ifndef #endif的作用,这样多个小文件里面同时#include 相同的头文件也没关系 。最后再写个总程序,包含左右小文件就可以了 。
2,C语言运行一个多文件程序你这是求裴波那锲系数,你这题有好几个错误:1.printf("当n=%d时,第%d项为%d,前%d项的总和为%d",n,n,x,n,y); 应该放在else{}之后;2.if改为while()循环;改后的的程序为:#include<stdio.h>void main( ) int a,b,i,n,x,y; a=1; b=1; i=3; scanf("%d",&n); while(i<=n)x=a+b;a=b;b=x;y=a+b;i=i+1; } if(n<i)y=y+1; }printf("当n=%d时 , 第%d项为%d,前%d项的总和为%d",n,n,x,n,y);}希望您满意!~看看是否是因为你的文件名为数字开头的原因?还有你这是为了测试extern关键字么,如果不是,没必要用extern吧
3,关于C语言如何用多文件编一个程序不如两个文件a.c b.c那就在a.c中#include"b.c"楼主是用TURBO C的吧? TC尽管比较原始简单,也有创建工程文件功能.除了楼主去看TC菜单项..另有两种方法推荐..毕竟TC太老了.1,学习使用其它C/C++开发环境.这很多,VC++,DEV-C++等等.2,学习c命令行编译, 这是最本质最基础的使用C编译器的方法.其实要编译多个文件,比如a.c b.c 使用TC,就是tcc a.c b.c回车使用BORLAND C ,就是 bcc32 a.c b.c回车使用GNU C, 就是 gcc a.c b.c 回车使用VC++, 就是 cl a.c b.c 加车...模拟画板?那个是控制台窗口还是windows窗口?如果是windows窗口的话看看windows程序设计应该十天可以做出来吧(无基础)如果是控制台程序看看dos的graphi.h里面的函数有相关的画线 画圆的函数【c语言多文件编程,怎么创建和编译一个多文件程序】
4,c语言编写和编译多文件的程序新建一个项目 , 然后添加文件,可以将不同的函数写在不同的文件中,要有一个头文件,包含需要调用的函数的声明,并且在其它文件中包含这个头文件 。编译调试方法和单文件程序无异 。第一个问题请问,我是不是该这样做: 在main.c中#include 在fun.c中同样#include (好像是必需的,请详细解释) 这是必需的 。因为编译器只是把包含文件的代码复制过来,既然你二个文件中都用到头文件的内容,那当然要包含头文件,否则就会出错 。我的观点,如果这两步都是必需的 那么当有很多个比如10个.c程序每个里头都要#include 那么文件是不是会特别大,当有100个.c程序都要包含一下的话,那么不是非常重复么?) 那当然是会重复的 。不过这个对程序的运行效率没任何影响,只是在编译过程中对文件的分析时间会稍长些,这也是没有办法的事,全看代码编写者如何组织结构了 。第二个问题: 会的 。解决的方法就是在可能被多次包含的头文件中开头加上#pragma once,那样就可以保证此头文件代码只被执行一次,而不会造成头文件中函数多次重复定义至于引起这种情况的情况 。当然你也可以自己用#ifdef等预编译处理来解决 。你问的问题不就是这种情况么?main.c和fun.c中都包含头文件tou.h 第三个问题: 当我在main.c中这样 #define unchar unsigned char 那么当我在fun.c中还需要重新创建替换宏unchar吗 可以不在创建而直接使用吗? 答案是需重新创建,不能直接使用 。但你可以把一些在多个文件中使用的宏、全局变量等统一定义到一个头文件中,那这样就可以避免多次定义了 。5,C语言多文件编程1. 多个.c文件利于代码的重复利用、模块化编程,保持每个文件中代码不过长,利于调试,可分段优化编译等2. 多个main函数当然要去掉,一般你使用其他人编的程序可以利用他们的函数,而要将main函数改写或去除重写3. 把这些可用的.c文件复制、添加到你自己的目录、自己的工程 , 还要添加这些.c文件中包含函数的.h文件,以便在调用函数之前引用4. 一般extern共享全局变量001最少要num[4]来存 。除了001三个字符,还有一个\0字符 。所以第一次出错 。只要改成num[4]就可以了,你改成num[10]就更可以了 。c语言字符串是以\0结束的 。多个c文件的作用在于将不同功能的代码分开来实现,这样便于代码重用、代码编译和代码管理 。一个程序中,只能有一个main函数,这是整个程序的起点和入口 。如果其他人也实现了该函数,则必须要重新命名,然后在唯一的main函数中统一调用 。多个c文件的合并并没有顺序要求,任何一个都可以先编译或者后编译 。extern表示导出,可以用于函数和变量 。用于函数的时候 , 表示这是一个外部函数,用于变量的时候,表示这是一个外部变量 。如果使用一个c文件,多个h文件,则会导致改动代码任何一个地方,都要重新编译所有的文件 , 效率上非常不划算 。而使用多个c文件,当代码发生变更的时候,仅仅相关的c文件代码需要重新编译,其他代码则可以保持不变,不用参与编译 。函数中的局部变量无法在函数外部调用 , 只能通过参数传递的方式传递给第三方函数 。因为局部变量是出于栈上面的,栈会随着函数调用完毕的时候被系统回收 。你看 char num[3]你的学号是以字符数组形式存储的 当你从文件里面读取时,由于你文件中的学号是3个字符 , 你读取时是以字符串形式来读取的 那么读取时实际上在001后面还有个字符串的结束字符,也就是实际读取了3+1个字符,你如果声明的字符数组num的容量小于4,无法保存结束字符 , 必然要出错,不是3不3的问题,而是只要比4会出错,比4大则ok同理 你存储的姓名是7个字符 当你声明数组name时 , 只要容量比8小必然出错,比8大则ok,不信你试试,例如char name[7];多个.C文件使你的程序具有更好的阅读性,而且一个.C对应自己的一个在自己文件的作用域,用extern可以将全局变量声明拓展出去,你在一个.c文件里面声明的变量无论是不是全局还是constant、static、局部,都只在自己的文件的作用域里面,用extern可以声明到其他的.c里面 。编译的时候是按照先分开编译一个一个.c文件生成对应的一个个obj中间文件 , 然后再根据包含的头文件进行连接 。

    推荐阅读