0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語言中強制類型轉(zhuǎn)化

嵌入式應(yīng)用開發(fā) ? 來源:嵌入式應(yīng)用開發(fā) ? 作者:嵌入式應(yīng)用開發(fā) ? 2022-09-09 08:58 ? 次閱讀

為何要在這里提強制類型轉(zhuǎn)換呢,測試代碼可以看到編譯器會報很多警告,意思是告訴程序員數(shù)據(jù)類型不匹配,雖然并不影響程序的正確運行,但是很多警告總會讓人感到難受。因此為了告訴編譯器代碼這里沒有問題,程序員可以使用強制類型轉(zhuǎn)換來將一段內(nèi)存轉(zhuǎn)換為需要的數(shù)據(jù)類型,例如下面有一個數(shù)組a,現(xiàn)在將其強制轉(zhuǎn)換為一個結(jié)構(gòu)體類型stu:

#include 

typedef struct STUDENT
{
    int      name;
    int    gender;
}stu;

int a[100]={10,20,30,40,50};

int main(int argc, char **argv)
{
    stu *student;
    student=(stu*)a;
    printf("student->name=%d\n",student->name);
    printf("student->gender=%d\n",student->gender);
    return 0;
}
poYBAGMZ4cKALyshAABCAJTB-Cs026.png

可以看到a[100]被強制轉(zhuǎn)換為stu結(jié)構(gòu)體類型,當(dāng)然不使用強制類型轉(zhuǎn)換也是可以的,只是編譯器會報警報。

pYYBAGMZ4dmAEKgKAADJefap1-w649.png

上圖為程序的示意圖,圖中數(shù)組a[100]的前12個字節(jié)被強制轉(zhuǎn)換為了一個struct stu類型,上面僅對數(shù)組進行了說明,其它數(shù)據(jù)類型也是一樣的,本質(zhì)上都是一段內(nèi)存空間。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7575

    瀏覽量

    134208
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1602

    瀏覽量

    48896
收藏 人收藏

    評論

    相關(guān)推薦

    C語言中void指針的基本認(rèn)識及典型應(yīng)用

    C語言中,*類型就是指針類型,比如 int *p,double *q,雖然是不一樣的指針,但是大小卻一樣sizeof(p) == sizeof(q),因為它們都是同一種
    發(fā)表于 02-01 09:26 ?978次閱讀

    C語言中的基本數(shù)據(jù)類型

    C語言是非常重要的一門程序設(shè)計語言,學(xué)好C語言再去學(xué)習(xí)其他編程語言將變得很輕松,因為大部分
    發(fā)表于 04-26 17:33 ?1804次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中</b>的基本數(shù)據(jù)<b class='flag-5'>類型</b>

    Go語言中的整數(shù)類型

    在 Go 語言中,整型可以細(xì)分成兩個種類十個類型。
    發(fā)表于 07-20 15:25 ?771次閱讀

    C語言中基本數(shù)據(jù)類型、變量和常量的使用

    C語言中基本數(shù)據(jù)類型、變量和常量的使用
    發(fā)表于 08-18 16:42 ?1677次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中</b>基本數(shù)據(jù)<b class='flag-5'>類型</b>、變量和常量的使用

    labview 強制類型轉(zhuǎn)化

    圖片里面的兩個強制類型轉(zhuǎn)化作用是啥,還有,接的類型,一個是4,一個是一個數(shù)組是啥意思,求解釋
    發(fā)表于 05-17 09:32

    C語言中定義int a,a是什么類型?

    C語言中定義int a[10][10],a是什么類型? 我的理解是a是指向二維整型數(shù)組的指針 ,具體這個怎么用?一般都處理什么樣的數(shù)據(jù)呢??
    發(fā)表于 05-25 07:10

    C語言中int型強制類型轉(zhuǎn)換成short型的溢出問題怎么解決?

    如何判斷STM32編碼器模式中電機的正反轉(zhuǎn)?C語言中int型強制類型轉(zhuǎn)換成short型的溢出問題怎么解決?
    發(fā)表于 10-19 06:59

    請問在C語言中如何使用bool類型?

    C語言中如何使用bool類型
    發(fā)表于 10-22 07:20

    單片機C語言中常用到的關(guān)鍵字及數(shù)據(jù)類型

    單片機C語言中常用到的關(guān)鍵字及數(shù)據(jù)類型。
    發(fā)表于 11-03 10:57 ?13次下載

    枚舉是C語言中的一種基本數(shù)據(jù)類型

    C語言中,枚舉類型是被當(dāng)做 int 或者 unsigned int 類型來處理的,所以按照 C 語言
    的頭像 發(fā)表于 09-25 15:45 ?8552次閱讀
    枚舉是<b class='flag-5'>C</b><b class='flag-5'>語言中</b>的一種基本數(shù)據(jù)<b class='flag-5'>類型</b>

    C語言中的不完整類型是什么

    C語言中存在這樣一種類型,名叫不完整類型(Incomplete types),雖然我們可能不太理解,或許也沒有仔細(xì)研究過,但是在實際的編程中,我們卻已經(jīng)用到過很多次了。
    的頭像 發(fā)表于 02-21 10:03 ?1131次閱讀

    簡述C語言中指針重點

    C語言中一個函數(shù)可以返回一個整型值、字符值、實型值等,也可以返回指針型的數(shù)據(jù),即地址,其概念與以前類似,只是返回的值的類型是指針類型
    的頭像 發(fā)表于 03-10 15:28 ?522次閱讀

    scanf在C語言中的作用

    scanf在C語言中的作用? scanf是C語言中的輸入函數(shù),用于從標(biāo)準(zhǔn)輸入設(shè)備(如鍵盤)讀取數(shù)據(jù),并將其存儲到變量中。它是C
    的頭像 發(fā)表于 11-23 14:13 ?994次閱讀

    c語言中數(shù)組怎么定義

    C語言中,數(shù)組是一種用來存儲相同類型元素的數(shù)據(jù)結(jié)構(gòu)。它可以存儲多個元素,并通過一個共同的名稱來引用這些元素。數(shù)組是一種很重要的數(shù)據(jù)結(jié)構(gòu),可以用于解決很多實際的問題。 在C
    的頭像 發(fā)表于 11-24 10:11 ?2289次閱讀

    c語言中decimal的含義

    C語言中的“decimal”是一種數(shù)據(jù)類型,用于表示十進制數(shù)字。在C語言中,常用的數(shù)據(jù)類型有整數(shù)
    的頭像 發(fā)表于 11-30 10:57 ?1883次閱讀