c语言多文件项目修改后无法编译
代码写的错误好多
#include<stdio.h>
intmain(void)
{
inthow;
printf("请计算7的平方. ");//反斜杠才是转义
scanf("%d",&how);//&---
if(how==49)
printf("true! ");//
else
printf("false! ");//
return0;
}
2. 关于C语言多文件编译的问题
使用头文件
例如: 原来是一个文件 hello.c /hello.h
有函数
void test1();
void test2();
void test3();
void test4();
把函数说明和对应的函数体,放到多个文件.c和.h文件的函数是对应的.
hello.c/hello.h
void test1();
void test2();
---
part1.c/par1.h
void test3();
void test4();
3. 为什么我的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语言编译和运行包含多个文件的程序为什么会出现这种情况
是否该文件前面掉了头文件包含:#include <stdio.h>
6. c语言求解答,为什么头文件中修改值再次编译后没用
这个跟宏没关系,跟你的函数声明有关系。
数组作为函数形参的的时候,mine[ROW][COL]这样写数组大小是没用的,在函数内部只能取到数组的首地址(当指针处理),不知道数组的大小(不知道指针指向多大的空间),所以你改形参里的ROW和COL没有任何意义。
7. C语言多文件编译问题
temp_part2.cpp中的
void INITIALIZE(list * ptr) {
改为
void INITIALLIZE(list * ptr) {
8. C语言源代码编译一次后,就不能再编译
你用输出的二进制运行文件覆盖了源代码,改成gcc helloworld.c -o helloworld, (去掉后缀)
-o 表示输出到