C語言size_t型別
阿新 • • 發佈:2020-12-16
文章目錄
在C語言中,很多庫引數的引數和返回值的資料型別是size_t,讓很多初學都不理解。size_t不是C語言的關鍵字,也不是基本資料型別,而是C語言自定義的資料型別。
例如以下庫函式的宣告:
size_t strlen(const char *s);
void *memset(void *s, int c, size_t n);
char *strncpy(char *dest, const char *src, size_t n);
void *malloc(size_t size);
1、測試size_t型別
關於size_t的定義,百度一下,發現有很多種說法,這些說法不一定準確,不同的作業系統,不同的C語言編譯器和版本各不相同,我們用以下程式碼來測試一下。
/*
* 程式名:book.c,此程式用於測試size_t型別。
* 作者:C語言技術網(www.freecplus.net) 日期:20190525。
*/
#include <stdio.h>
#include <string.h>
int main()
{
size_t ii;
ii=1234567890;
printf("ii=%ld,sizeof(ii)=%ld\n",ii,sizeof (ii));
ii=-1234567890;
printf("ii=%ld,sizeof(ii)=%ld\n",ii,sizeof(ii));
}
執行效果
我採用的是64位的CentOS7,從上面測試的結果可以看出,size_t其實就是一個8位元組的長整數。
那麼C語言編譯器為什麼要定義size_t?使用size_t可能會提高程式碼的可移植性、有效性或者可讀性,它的定義大致如下:
typedef unsigned long size_t;
沒什麼特別。
2、獲取視訊教程
百萬年薪程式設計師錄製,《C/C++高效能服務開發基礎》視訊教程已在CSDN學院釋出,優惠價12元,地址如下:
3、版權宣告
C語言技術網原創文章,轉載請說明文章的來源、作者和原文的連結。
來源:C語言技術網(www.freecplus.net)
作者:碼農有道
如果這篇文章對您有幫助,請點贊支援,或在您的部落格中轉發此文,讓更多的人可以看到它,謝謝!!!