亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺析C語言頭文件和庫的一些問題

 更新時間:2013年07月16日 10:22:45   作者:  
以下是對C語言中頭文件和庫的一些問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下
使用gcc的編譯器 頭文件沒有包含stdlib.h,使用atoi函數(shù)(atoi函數(shù)在stdlib.h中才有聲明),編譯卻沒有出錯

如果編譯的時候加上-Wall選項,會有個警告,請問這是為什么?
這是因為C語言一個非常傻的規(guī)定:一個函數(shù)如果沒有聲明函數(shù)原型,其返回值類型就是int(所謂的implicit declaration)。由于atoi恰好真返回int,所以你即使不包含它的頭文件也不報錯。至于這個警告,是為了避免你由于忘記聲明函數(shù)原型而出錯。

編譯器對于沒有定義過的函數(shù)原型直接當(dāng)作它返回int,它不需要知道它已經(jīng)定義過了
也就是說,當(dāng)你以一個參數(shù)列表調(diào)用atoi時,編譯器已經(jīng)知道這個函數(shù)的參數(shù)列表是什么,它只不知道返回值而已,在這種情況下,編譯器還需要什么額外的東西呢?它當(dāng)然可以通過。
注意:編譯器不關(guān)心某個函數(shù)在哪個頭文件被定義,它只需要知道這個函數(shù)是什么原型即可
復(fù)制代碼 代碼如下:

#include<stdio.h>
//#include<stdlib.h>
int main()
{
int i;
double f;
char b[5] = "23";
char c[5] = "2.3";
i = atoi(b);
f = atof(c);
printf("i=%d f=%lf\n", i, f);
return 0;
}

gcc test.c -o test沒有任何警告
gcc -Wall test.c -o test
出現(xiàn)警告:w9.c: In function `main':
w9.c:9: warning: implicit declaration of function `atoi'
w9.c:10: warning: implicit declaration of function `atof'
輸出結(jié)果:
i=23 f=1717986918.000000
加上#include<stdlib.h>則結(jié)果正常
看來atoi和atof都在C標(biāo)準(zhǔn)庫glibc中,但是很奇怪為什么C標(biāo)準(zhǔn)庫函數(shù)sqrt和pow卻不在glibc中

相關(guān)文章

  • C++ LeetCode300最長遞增子序列

    C++ LeetCode300最長遞增子序列

    這篇文章主要為大家介紹了C++ LeetCode300最長遞增子序列示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • C++友元(Friend)用法實例簡介

    C++友元(Friend)用法實例簡介

    這篇文章主要介紹了C++友元(Friend)用法,對于C++的學(xué)習(xí)來說有很好的參考價值,需要的朋友可以參考下
    2014-08-08
  • C++實現(xiàn)LeetCode(201.數(shù)字范圍位相與)

    C++實現(xiàn)LeetCode(201.數(shù)字范圍位相與)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(201.數(shù)字范圍位相與),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C語言庫函數(shù)getchar()新見解

    C語言庫函數(shù)getchar()新見解

    用getchar()函數(shù)讀取字符串時,字符串會存儲在輸入緩沖區(qū)中,包括輸入的回車字符,下面這篇文章主要給大家介紹了關(guān)于C語言中g(shù)etchar()的用法以及案例的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • C++實現(xiàn)哈夫曼樹的方法

    C++實現(xiàn)哈夫曼樹的方法

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)哈夫曼樹的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C++11中的時間庫std::chrono(引發(fā)關(guān)于時間的思考)

    C++11中的時間庫std::chrono(引發(fā)關(guān)于時間的思考)

    這篇文章主要介紹了C++11中的時間庫std::chrono(引發(fā)關(guān)于時間的思考),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • C語言求冪計算的高效解法

    C語言求冪計算的高效解法

    這篇文章主要介紹了C語言求冪計算的高效解法,分別演示了求冪運算與整數(shù)次方的解法,具有不錯的參考借鑒價值,需要的朋友可以參考下
    2014-09-09
  • C語言:自定義類型詳解

    C語言:自定義類型詳解

    這篇文章主要介紹了C語言自定義函數(shù)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • C語言中static的作用及C語言中使用靜態(tài)函數(shù)有何好處

    C語言中static的作用及C語言中使用靜態(tài)函數(shù)有何好處

    在C語言中,static的作用有三條:一是隱藏功能,二是保持持久性功能,三是默認(rèn)初始化為0。本文重點給大家介紹C語言中static的作用及c語言中使用靜態(tài)函數(shù)有何好處,對本文感興趣的朋友一起看看吧
    2015-11-11
  • Linux下用C++實現(xiàn)俄羅斯方塊

    Linux下用C++實現(xiàn)俄羅斯方塊

    這篇文章主要為大家詳細(xì)介紹了Linux下用C++實現(xiàn)俄羅斯方塊的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評論