国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語言入門教程||C語言 頭文件||C語言 強(qiáng)制類型轉(zhuǎn)換

這篇具有很好參考價(jià)值的文章主要介紹了C語言入門教程||C語言 頭文件||C語言 強(qiáng)制類型轉(zhuǎn)換。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

C語言 頭文件

頭文件是擴(kuò)展名為?.h?的文件,包含了 C 函數(shù)聲明和宏定義,被多個(gè)源文件中引用共享。有兩種類型的頭文件:程序員編寫的頭文件和編譯器自帶的頭文件。

在程序中要使用頭文件,需要使用 C 預(yù)處理指令?#include?來引用它。前面我們已經(jīng)看過?stdio.h?頭文件,它是編譯器自帶的頭文件。

引用頭文件相當(dāng)于復(fù)制頭文件的內(nèi)容,但是我們不會(huì)直接在源文件中復(fù)制頭文件的內(nèi)容,因?yàn)檫@么做很容易出錯(cuò),特別在程序是由多個(gè)源文件組成的時(shí)候。

A simple practice in C 或 C++ 程序中,建議把所有的常量、宏、系統(tǒng)全局變量和函數(shù)原型寫在頭文件中,在需要的時(shí)候隨時(shí)引用這些頭文件。

引用頭文件的語法

使用預(yù)處理指令?#include?可以引用用戶和系統(tǒng)頭文件。它的形式有以下兩種:

#include <file>

這種形式用于引用系統(tǒng)頭文件。它在系統(tǒng)目錄的標(biāo)準(zhǔn)列表中搜索名為 file 的文件。在編譯源代碼時(shí),您可以通過 -I 選項(xiàng)把目錄前置在該列表前。

#include "file"

這種形式用于引用用戶頭文件。它在包含當(dāng)前文件的目錄中搜索名為 file 的文件。在編譯源代碼時(shí),您可以通過 -I 選項(xiàng)把目錄前置在該列表前。

引用頭文件的操作

#include?指令會(huì)指示 C 預(yù)處理器瀏覽指定的文件作為輸入。預(yù)處理器的輸出包含了已經(jīng)生成的輸出,被引用文件生成的輸出以及?#include?指令之后的文本輸出。例如,如果您有一個(gè)頭文件 header.h,如下:

char *test (void);

和一個(gè)使用了頭文件的主程序?program.c,如下:

int x;
#include "header.h"

int main (void)
{
   puts (test ());
}

編譯器會(huì)看到如下的令牌流:

int x;
char *test (void);

int main (void)
{
   puts (test ());
}

只引用一次頭文件

如果一個(gè)頭文件被引用兩次,編譯器會(huì)處理兩次頭文件的內(nèi)容,這將產(chǎn)生錯(cuò)誤。為了防止這種情況,標(biāo)準(zhǔn)的做法是把文件的整個(gè)內(nèi)容放在條件編譯語句中,如下:

#ifndef HEADER_FILE
#define HEADER_FILE

the entire header file file

#endif

這種結(jié)構(gòu)就是通常所說的包裝器?#ifndef。當(dāng)再次引用頭文件時(shí),條件為假,因?yàn)?HEADER_FILE 已定義。此時(shí),預(yù)處理器會(huì)跳過文件的整個(gè)內(nèi)容,編譯器會(huì)忽略它。

有條件引用

有時(shí)需要從多個(gè)不同的頭文件中選擇一個(gè)引用到程序中。例如,需要指定在不同的操作系統(tǒng)上使用的配置參數(shù)。您可以通過一系列條件來實(shí)現(xiàn)這點(diǎn),如下:

#if SYSTEM_1
   # include "system_1.h"
#elif SYSTEM_2
   # include "system_2.h"
#elif SYSTEM_3
   ...
#endif

但是如果頭文件比較多的時(shí)候,這么做是很不妥當(dāng)?shù)模A(yù)處理器使用宏來定義頭文件的名稱。這就是所謂的有條件引用。它不是用頭文件的名稱作為?#include?的直接參數(shù),您只需要使用宏名稱代替即可:

 #define SYSTEM_H "system_1.h"
 ...
 #include SYSTEM_H

SYSTEM_H 會(huì)擴(kuò)展,預(yù)處理器會(huì)查找 system_1.h,就像?#include?最初編寫的那樣。SYSTEM_H 可通過 -D 選項(xiàng)被您的 Makefile 定義。

C語言 強(qiáng)制類型轉(zhuǎn)換

強(qiáng)制類型轉(zhuǎn)換是把變量從一種類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。例如,如果您想存儲(chǔ)一個(gè) long 類型的值到一個(gè)簡單的整型中,您需要把 long 類型強(qiáng)制轉(zhuǎn)換為 int 類型。您可以使用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符來把值顯式地從一種類型轉(zhuǎn)換為另一種類型,如下所示:

(type_name) expression

請(qǐng)看下面的實(shí)例,使用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符把一個(gè)整數(shù)變量除以另一個(gè)整數(shù)變量,得到一個(gè)浮點(diǎn)數(shù):

#include <stdio.h>

int main()
{
   int sum = 17, count = 5;
   double mean;

   mean = (double) sum / count;
   printf("Value of mean : %f\n", mean );

}

嘗試一下

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

Value of mean : 3.400000

這里要注意的是強(qiáng)制類型轉(zhuǎn)換運(yùn)算符的優(yōu)先級(jí)大于除法,因此?sum?的值首先被轉(zhuǎn)換為?double?型,然后除以 count,得到一個(gè)類型為 double 的值。

類型轉(zhuǎn)換可以是隱式的,由編譯器自動(dòng)執(zhí)行,也可以是顯式的,通過使用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符來指定。在編程時(shí),有需要類型轉(zhuǎn)換的時(shí)候都用上強(qiáng)制類型轉(zhuǎn)換運(yùn)算符,是一種良好的編程習(xí)慣。

整數(shù)提升

整數(shù)提升是指把小于?int?或?unsigned int?的整數(shù)類型轉(zhuǎn)換為?int?或?unsigned int?的過程。請(qǐng)看下面的實(shí)例,在 int 中添加一個(gè)字符:

#include <stdio.h>

int main()
{
   int  i = 17;
   char c = 'c'; /* ascii 值是 99 */
   int sum;

   sum = i + c;
   printf("Value of sum : %d\n", sum );

}

嘗試一下

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

Value of sum : 116

在這里,sum 的值為 116,因?yàn)榫幾g器進(jìn)行了整數(shù)提升,在執(zhí)行實(shí)際加法運(yùn)算時(shí),把 'c' 的值轉(zhuǎn)換為對(duì)應(yīng)的 ascii 值。

常用的算術(shù)轉(zhuǎn)換

常用的算術(shù)轉(zhuǎn)換是隱式地把值強(qiáng)制轉(zhuǎn)換為相同的類型。編譯器首先執(zhí)行整數(shù)提升,如果操作數(shù)類型不同,則它們會(huì)被轉(zhuǎn)換為下列層次中出現(xiàn)的最高層次的類型:

C語言入門教程||C語言 頭文件||C語言 強(qiáng)制類型轉(zhuǎn)換

常用的算術(shù)轉(zhuǎn)換不適用于賦值運(yùn)算符、邏輯運(yùn)算符 && 和 ||。讓我們看看下面的實(shí)例來理解這個(gè)概念:

#include <stdio.h>

int main()
{
   int  i = 17;
   char c = 'c'; /* ascii 值是 99 */
   float sum;

   sum = i + c;
   printf("Value of sum : %f\n", sum );

}

嘗試一下

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

Value of sum : 116.000000

在這里,c 首先被轉(zhuǎn)換為整數(shù),但是由于最后的值是 double 型的,所以會(huì)應(yīng)用常用的算術(shù)轉(zhuǎn)換,編譯器會(huì)把 i 和 c 轉(zhuǎn)換為浮點(diǎn)型,并把它們相加得到一個(gè)浮點(diǎn)數(shù)。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-433724.html

到了這里,關(guān)于C語言入門教程||C語言 頭文件||C語言 強(qiáng)制類型轉(zhuǎn)換的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C語言編程—強(qiáng)制類型轉(zhuǎn)換

    C語言編程—強(qiáng)制類型轉(zhuǎn)換

    強(qiáng)制類型轉(zhuǎn)換是把變量從一種類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。例如,如果您想存儲(chǔ)一個(gè) long 類型的值到一個(gè)簡單的整型中,您需要把 long 類型強(qiáng)制轉(zhuǎn)換為 int 類型。您可以使用 強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 來把值顯式地從一種類型轉(zhuǎn)換為另一種類型,如下所示: 請(qǐng)看下面的實(shí)例,使用

    2024年02月11日
    瀏覽(24)
  • C語言入門教程||C語言 文件讀寫||C語言 預(yù)處理器

    本章我們將介紹 C 程序員如何創(chuàng)建、打開、關(guān)閉文本文件或二進(jìn)制文件。 一個(gè)文件,無論它是文本文件還是二進(jìn)制文件,都是代表了一系列的字節(jié)。C 語言不僅提供了訪問頂層的函數(shù),也提供了底層(OS)調(diào)用來處理存儲(chǔ)設(shè)備上的文件。本章將講解文件管理的重要調(diào)用。 您可

    2024年02月02日
    瀏覽(23)
  • c語言和cpp里面的強(qiáng)制類型轉(zhuǎn)換

    強(qiáng)制類型轉(zhuǎn)換格式如下: (新類型名)變量名 1 int a =1; double b=10.0; b=(double)a; 2. ?c++的強(qiáng)制類型轉(zhuǎn)換 dynamic_cast類型 static_cast類型 auto_cast類型 運(yùn)行識(shí)別和強(qiáng)制內(nèi)存管理 3.宏定義或者“宏替換” #define 標(biāo)識(shí)符 常量 #define pi 3.14? 另一種定義常量的方法是使用const const 數(shù)據(jù)類型。變

    2024年02月02日
    瀏覽(23)
  • 紅袖添香,絕代妖嬈,Ruby語言基礎(chǔ)入門教程之Ruby3基礎(chǔ)數(shù)據(jù)類型(data types)EP02

    Ruby是強(qiáng)類型動(dòng)態(tài)語言,即Ruby中一旦某一個(gè)對(duì)象被定義類型,如果不通過強(qiáng)制轉(zhuǎn)換操作,那么它永遠(yuǎn)就是該數(shù)據(jù)類型,并且只有在Ruby解釋器運(yùn)行時(shí)才會(huì)檢測(cè)對(duì)象數(shù)據(jù)類型,它的一切皆為對(duì)象(包括 nil 值對(duì)象),可以通過調(diào)用內(nèi)置class屬性來獲取該對(duì)象的具體數(shù)據(jù)類型。對(duì)于

    2024年01月20日
    瀏覽(18)
  • 【Unity Localization】基礎(chǔ)教程-帶你入門Unity官方國際化本地化多語言插件Localization 單獨(dú)修改配置文件即可一體化控制全局文本實(shí)現(xiàn)多語言轉(zhuǎn)換

    【Unity Localization】基礎(chǔ)教程-帶你入門Unity官方國際化本地化多語言插件Localization 單獨(dú)修改配置文件即可一體化控制全局文本實(shí)現(xiàn)多語言轉(zhuǎn)換

    Unity Localization 基礎(chǔ)教程 隨著經(jīng)濟(jì)全球化的趨勢(shì),游戲也逐漸變的不分國界。在進(jìn)行游戲內(nèi)文本的國際化本土化多語言切換時(shí)往往是需要制作組耗費(fèi)大量精力,那么今天要學(xué)習(xí)的這款Unity官方推出的國際化本地化插件 Localization 就可以進(jìn)行多語言文本的全局管理達(dá)到快速切換文

    2024年02月03日
    瀏覽(19)
  • .NET Emit 入門教程:第四部分:構(gòu)建類型(Type)

    .NET Emit 入門教程:第四部分:構(gòu)建類型(Type)

    在動(dòng)態(tài)生成代碼的過程中,構(gòu)建類型(Type)是至關(guān)重要的一步。 通過使用 Emit 中的 TypeBuilder,我們可以定義和創(chuàng)建各種類型,包括類、結(jié)構(gòu)體和接口。 本節(jié)將深入探討如何使用 TypeBuilder 動(dòng)態(tài)構(gòu)建類型,并介紹其在實(shí)際應(yīng)用中的重要性。 通過學(xué)習(xí)本系列之前的文章,我們可

    2024年03月25日
    瀏覽(27)
  • python教程 入門學(xué)習(xí)筆記 第4天 數(shù)據(jù)類型 獲取數(shù)據(jù)類型 字符串拼接

    數(shù)據(jù)類型 1、能直接處理的基本數(shù)據(jù)類型有5個(gè):整型、浮點(diǎn)型、字符串、布爾值、空 1)整型(int)=整數(shù),例如0至9,-1至-9,100,-8180等,人數(shù)、年齡、頁碼、門牌號(hào)等 沒有小數(shù)位的數(shù)字,是整型 2)浮點(diǎn)型(float)=小數(shù),例如金額、身高、體重、距離、長度、π等 精確到小

    2024年02月14日
    瀏覽(28)
  • Python保姆級(jí)教程 數(shù)據(jù)類型—新手小白入門必看系列

    推薦使用壓縮軟件和殺毒軟件 7 - zip 使用火絨 優(yōu)點(diǎn): 代碼說明 沒注釋的代碼 有注釋的代碼 不讓解釋器執(zhí)行注釋的那句話 單行注釋快捷鍵:ctrl + ? \\\"\\\"\\\"\\\"\\\"\\\" (三個(gè)雙引號(hào)) 185730213551 什么是變量:可以改變的量 計(jì)算機(jī)用來存貯數(shù)據(jù)的盒子,想用這個(gè)數(shù)據(jù),就直接那盒子就好了

    2024年02月16日
    瀏覽(25)
  • JAVA包裝類和基本數(shù)據(jù)類型------JAVA入門基礎(chǔ)教程

    public class WrapperTest { ? ? public static void main(String[] args) ? ? { ? ? ? ? int i1 = 10; ? ? ? ? Integer i11 = new Integer(i1); ? ? ? ? System.out.println(i11); ? ? ? ? float f1 = 12.3F; ? ? ? ? f1 = 32.2F; ? ? ? ? Float ff1 = new Float(f1); ? ? ? ? System.out.println(ff1); ? ? ? ? String s1 = \\\"32.1\\\"; ? ? ? ? F

    2024年02月02日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包