Open3

C言語

Ryutaro YagiRyutaro Yagi

size_t型について

・sizeof演算子や、strlen関数など、byte数や長さを表現するところで使われる型
size_tはオブジェクトのサイズを表すために使われる。unsingnedな整数値
・「長さ」といった曖昧で環境依存しそうなものを、何も考えずintで済ませてしまうことを避けるため、このような型が作られた。
http://manabu.quu.cc/up/3/e31555.htm
https://www.wdic.org/w/TECH/size_t
https://codom.hatenablog.com/entry/2018/06/19/222336

ssize_tについて

ssize_tsize_tにエラーを表す負の値が加わっている。signedな整数値
・サイズをバイト数で返すことができることを意味するときは常にsize_tを使い、バイト数で表されるサイズあるいは(負の)エラー値を返すときは常にssize_tを使うべきである。
http://pubs.opengroup.org/onlinepubs/007908775/xsh/systypes.h.html

Ryutaro YagiRyutaro Yagi

0 / \0 / NULL / ""の違い

・0は整数の0 (int型)
・NULLはどこも参照していないことを表すポインタ。値はアドレスの0(void* 型)
・\0はASCIIコード値0を表す (char型)

基本的には混同して使用しても問題ない場合が多い
しかし、**空文字列は意味が大きく異なる。**空文字列は空文字を要素として持つ要素数1の配列。そのため,単独の空文字列の値は配列の先頭アドレスとなる。空文字列の先頭要素[0]は空文字('\0')であるため値は0である。

https://senooken.jp/post/2018/03/20/