C语言:使用.h和.c文件遇到的问题总结

全局变量是什么? 

在所有函数外部定义的变量称为全局变量(Global Variable),它的作用域默认是整个程序,也就是所有的 .c 和 .h源文件。

extern的使用,include的使用

表明变量或者函数是定义在其他其他文件中的,仅仅是一种“暗示”。

·如果需要调用其他.c文件中的函数or变量,在文件中声明前加extern即可,不加extern而直接声明也可以,因为声明全局函数or变量默认前面带有extern。

·如果不想让其他.c文件引用本文件中的变量,加上static即可。

·在“写全局变量”的.c.h的地方写extern,在其他引用的.c里面直接用。

·尽量应该避免不同.c文件里面函数名称相同的问题。

·include相当于把include .h文件直接带入到本源文件里,比如在b.c文件里include "a.h",就相当于把a.h文件里所有定义的变量和函数全部拷贝了一份放入了b.c里,一个项目里,一个.h文件可能会被多个.c源文件包含,这样编译的时候就会报重复定义的错误。而且尽量不要在.h里定义变量,这是一个不好的习惯。

·区分声明和定义。

在.h和.c里面放什么?

本质上没有任何区别。一般:

.h文件是头文件,内含函数声明、宏定义、结构体定义等内容

·如果在C文件中声明宏,结构体,函数等,那么要在另一个C文件中引用相应的宏,结构体,就必须重复的声明。所以把他放在.h里面。

.c文件是程序文件,内含函数实现,变量定义等内容。

是什么后缀也没有关系,只不过编译器会默认对某些后缀的文件采取某些动作。你可以强制编译器把任何后缀的文件都当作c文件来编。

.h文件引用问题?

现在有A.h B.c C.c (main)三个文件

A.h声明结构体,函数。

B.c里面放需要的函数和一些数据。

C.c(main)调用A中函数和C中数据,执行程序。

需要在C里面#include"B.c"且#include"A.h"

需不需要再B里面#include"A.h"?

如果B中引用: [Error] redefinition of 'XXX'

重复引用导致报错,只需要include一次。

为了避免对这个问题的过分讨论,可以添加#ifndef条件编译。

//A.h
#ifndef A_H
#define A_H

#endif

现在只有[Error] 'XXXX' does not name a type

条件编译能够避免重复引用,涉及多个.c或者.h的时候避免出错。

显示does not name a type?

[Error] 'XXX' does not name a type 

参考他人的博客,头文件互相包含时会出现这种错误,但是我只有A.h一个头文件,不可能是这种错误。

语句是不能写在函数外面全局变量之中的,需要写在函数里面。

我错误的在函数外面对已经声明的变量进行了赋值操作,把操作语句放在函数里面就不会报错。

补充:在全局范围内声明变量时,同样只能进行初始化,不可以对其赋值。

全局数组?

可以是,和正常数组一样。

·全局数组的初始化值不一样,并且需要具体长度

·数组名是数组的首地址,是一个指针常量,很多时候我们可以将数组名当指针来用,但在全局变量的外部引用中,全局数组和全局指针变量的引用方式还是有区别的。

·如果将全局数组按指针声明的方式来引用,编译可能不会报错,但在执行的时候会出现意想不到的问题,最常见的应该就是段错误。(这个没查到具体的不同的例子哈哈哈)


参考:
https://blog.csdn.net/u011328417/article/details/98876517

https://blog.csdn.net/qq_27664167/article/details/82859852


“且将新火试新茶,诗酒趁年华。”

  • 20
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在C语言,conio.h是一个用于控制台图形界面(Console Graphics Interface)的头文件。这个头文件提供了一些函数,可以在控制台窗口实现一些基本的图形功能,如光标位置设置、文本颜色控制、屏幕清除等。 要下载conio.h并使用它,首先需要了解几个关键点。首先,C语言本身不提供conio.h,它实际上是Turbo C编译器的一个扩展,只能在DOS和Windows环境下使用。其次,conio.h并不是标准C库的一部分,因此在一些编译器可能无法找到它。 要下载conio.h,首先需要安装Turbo C编译器。这是一个老旧的C语言集成开发环境(IDE),在DOS和Windows环境广泛使用。可以从互联网上搜索Turbo C的安装文件,下载并按照指示进行安装。 安装完成后,打开Turbo C IDE,创建一个新的C语言项目。在项目,可以使用#include <conio.h>来引入conio.h头文件。然后,就可以使用conio.h提供的函数来实现控制台图形界面的相关功能了。 请注意,conio.h只能在Turbo C编译器使用,在其他编译器可能无法找到这个头文件。如果在其他编译器进行开发,可能需要使用其他的图形库或者自己实现所需的功能。 总结来说,要使用conio.h,需要安装Turbo C编译器,并在项目引入conio.h头文件。这个头文件提供了一些控制台图形界面相关的函数,可以实现基本的图形功能。但需要注意,conio.h只能在Turbo C环境使用。 ### 回答2: conio.h是一个用于控制台程序的C语言文件,其包含了一些控制台操作的函数和常量。它提供了一些方便的功能,如在控制台上移动光标、更改文本颜色以及获取按键输入等。 然而需要注意的是,conio.h是一个非标准的头文件,它并不属于C语言标准库的一部分。因此,不同的编译器可能对其支持程度不同。 如果你想在使用conio.h的程序编译通过,可以按照以下步骤进行下载和配置: 1. 打开一个搜索引擎,如Google或百度,在搜索框输入“conio.h下载”进行搜索。 2. 在搜索结果,找到一个可信的、提供conio.h文件下载的网站。确保该网站是可信的,并且下载的文件不包含恶意软件。 3. 点击下载链接,将conio.h文件保存到你的本地计算机。建议将其保存到合适的位置,以便在编译时引用。 4. 打开你的C语言集成开发环境(IDE),如Dev-C++、Code::Blocks或Visual Studio等。 5. 在你的C语言项目,找到头文件包含的地方,通常在文件的开头部分。 6. 使用`#include`指令去引用conio.h头文件。确保指定了正确的路径,使编译器能够找到该文件。 7. 现在你可以在程序使用conio.h定义的函数和常量了。例如,使用`gotoxy()`函数可以在控制台上移动光标。 请注意,由于不是所有的编译器都支持conio.h,如果你遇到了编译错误或其他问题,可以尝试在网上搜索相关解决方案,如使用替代的库或函数来实现相同的功能。 总结而言,要下载conio.h,你需要在网上搜索可信的下载源,然后将其保存到你的计算机,并配置你的编译环境以正确引用该文件。 ### 回答3: c语言的conio.h是一个头文件,用于在控制台环境下进行输入和输出操作。它包含一些在控制台窗口内进行字符输入输出、光标位置控制、颜色设置等常用操作的函数。 要下载和使用conio.h头文件,可以按照以下步骤进行: 1. 首先,在您的计算机上安装支持C语言编译器,例如GCC或Visual Studio等。这些编译器提供了C语言开发所需的工具和库。 2. 在编写C语言程序时,您需要在源代码包含conio.h头文件。您可以通过以下两种方法之一来获得此头文件: a. 前往互联网上的C语言开发社区或官方网站,搜索并下载conio.h头文件。确保从可信赖的来源获取文件。 b. 如果您使用的是GCC编译器,那么您可以尝试在安装GCC时选择安装带有conio.h的头文件。在某些情况下,GCC可能已经包含了conio.h头文件。 3. 下载conio.h头文件后,将其保存在您的C语言程序所在的项目文件。 4. 在您的C语言程序使用#include指令将conio.h头文件包含进来。例如: #include <conio.h> 5. 现在,您可以在您的C程序使用conio.h定义的函数了。这些函数包括getch()用于获取单个字符,printf()用于打印字符,clrscr()用于清屏等。 需要注意的是,conio.h头文件并非标准C语言的一部分,它是特定编译器提供的库函数扩展。因此,它在不同的编译器上的用法和功能可能会有所差异。在使用conio.h时,请根据您所使用的特定编译器的文档和要求进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值