當前位置:首頁 » 編程語言 » c語言h
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言h

發布時間: 2022-01-15 20:28:03

c語言中 .c和.h有什麼區別

一、意思不同

.h中一般放的是同名.c文件中定義的變數、數組、函數的聲明,需要讓.c外部使用的聲明。

.c文件一般放的是變數、數組、函數的具體定義。

二、用法不同

.c文件,以c為擴展名,一般存儲具體功能的實現。

.h文件,稱為頭文件,一般存儲類型的定義,函數的聲明等。通常,頭文件被.c文件包含,使用#include 語句。但值得注意的是,這只是一種約定,而非強制。

三、作用

如果在h文件中實現一個函數體,那麼如果在多個C文件中引用它,而且又同時編譯多個C文件,將其生成的目標文件連接成一個可執行文件,在每個引用此h 文件的C文件所生成的目標文件中,都有一份這個函數的代碼,如果這段函數又沒有定義成局部函數,那麼在連接時,就會發現多個相同的函數,就會報錯。

如果在h文件中定義全局變數,並且將此全局變數賦初值,那麼在多個引用此h文件的C文件中同樣存在相同變數名的拷貝,關鍵是此變數被賦了初值,所以編 譯器就會將此變數放入DATA段,最終在連接階段,會在DATA段中存在多個相同的變數,它無法將這些變數統一成一個變數,也就是僅為此變數分配一個空 間,而不是多份空間,假定這個變數在h文件沒有賦初值,編譯器就會將之放入BSS段,連接器會對BSS段的多個同名變數僅分配一個存儲空間。

⑵ C語言h文件的定義方法

貌似和普通的一樣么 我也不清楚

⑶ C語言如何製作自己的 h 文件

一個.h文件要
對應有一個.c文件,這樣寫助於查看和修改程序。比如a.h

a.c;:
在.h文件中
#ifndef
__A_H_
#define
__A_H_
#include
void
trans2(double
B)

double
trans1()

#endif
在.c文件中
#include
"a.h"
把相應的函數定義寫在.c文件中
再在main.c文件中
#include
"a.h"
#include
main()
{
double
trans1()
//由度分秒到弧度
{
double
B1,B11,B12,B13,B111;
scanf("%lf°%lf′%lf″",&B11,&B12,&B13);
B111=fabs(B11);
//B11可能為負值
B1=B111+B12/60.0+B13/3600.0;
B1=B1*atan(1)/45.0;
if(B11<0)
B1=-B1;
return
B1;
}
void
trans2(double
B)
//由弧度到度分秒並輸出角度值
{
int
a,b;
double
B0;
B0=fabs(B);
//B可能為負值
double
c;
B0=B0*45.0/atan(1);
a=int(B0);
b=int((B0-a)*60);
c=(B0-a)*3600-b*60;
if((int)(c)==60)
//為了避免出現59′60″這種情況,不過好像不起作用,不知道為什麼,原來是int沒有加括弧
{
b=b+1;
c=0.0;
}
if(b==60)
{
b=0;
a=a+1;
}
if(B<0)
a=-a;
printf("%d°%d′%.4f″\n",a,b,c);
}
}
就可以在main.c函數中調用a.c中的函數了

⑷ c語言中#include XXX.c和XXX.h有什麼區別

區分在實際使用中並沒有什麼影響,但是 .h 主要放一些宏定義,.c放程序代碼,這樣做對以後程序香梅的維護和移植就比較方便了,這樣做只是形成一個良好的代碼書寫規范。

⑸ C語言里的.h和.c文件有什麼區別呢

.h
文件叫頭文件,
和你說的.C文件算是一樣的都是程序吧,
.H文件是人家給寫的的能執行一定函數的文件,你可以在自己寫的.c文件裡面調用他。叫頭文件。

⑹ c語言中stdio.h是什麼意思

stdio.h是C語言的頭文件。

在C語言或C++中,會把用來#include的文件的擴展名叫 .h,稱其為頭文件。 #include文件的目的就是把多個編譯單元(也就是c或者cpp文件)公用的內容。

單獨放在一個文件里減少整體代碼尺寸;或者提供跨工程公共代碼。在現行的c++版本中,應用這個頭文件應是#include<stdio.h>。所以,源代碼中如用到標准輸入輸出函數時,就要包含這個頭文件。

(6)c語言h擴展閱讀

C語言stdio.h各函數的用法

fopen:FILE *fopen(const char *filename, const char *mode)

使用給定的模式 mode 打開 filename 所指向的文件。

freopen:FILE *freopen(const char *filename, const char *mode, FILE *stream)

把一個新的文件名 filename 與給定的打開的流 stream 關聯,同時關閉流中的舊文件。

fflush:int fflush(FILE *stream)

刷新流 stream 的輸出緩沖區。

fclose:int fclose(FILE *stream)

關閉流 stream。刷新所有的緩沖區。

⑺ C語言中頭文件中<*.h>和「*.h」的區別

<*.h>表示優先中系統目錄中查找 該頭文件 比如#include <stdio.h> 這是系統中的
"*.h"表示優先從當前目錄中查找 該頭文件 比如#include "head.h" 這是你自己寫的

⑻ c語言%xh是什麼意思

C++程序的源文件後綴名也是「.c」和「%xh」,這與C語言程序源文件的後綴名完全一樣。這就帶來了一些問題,其中一個比較顯著的問題就是編譯器無法輕松的區分某個源文件里的程序究竟是使用C++編寫的,還是C語言編寫的。

因此,後來C++程序源文件的後綴名不再使用「.c」了,有些使用「.C」後綴名以區別於C語言程序,還有些C++源文件則使用「.c++」,「.cc」,「.cxx」作為後綴名。

「%xh」後綴名的頭文件里的宏控制命令如下:

#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif

(8)c語言h擴展閱讀

1、如果編譯器能夠識別「.cpp」和「.cc」後綴名的源文件,那麼使用哪一個都是可以的,因為它們都能告訴編譯器該源文件代碼是由C++語言編寫的。

2、程序項目的源文件使用「.ii」,」.ixx」,「.ipp」作為後綴名,這類文件一般專用於提供內斂定義。還有些源文件使用「.txx」,「.tpp」,「.tpl」 作為後綴名,用於定義模板。

⑼ 後綴為h的C語言文件是怎麼回事

聲明一般放在頭文件,後綴h,實現一般放在c或cpp文件。
聲明和實現都是源程序的一部分,不要在意擴展名了。