俺言語。

自分にしか理解できない言語で書かれた備忘録

C

【Arduino,C】文字宣言時にオーバーフロー?

オーバーフローといっていいのかよくわからないけど文字宣言のところで変数の意味が分かるように掛け算で数値を代入したとき,具体的には unsigned long time_millisec = 135 * 1000 //msec としてミリ秒にするため1000をかけて代入したところなぜか代入され…

【C,はまった】

ヌル文字のみchar変数へ代入する場合はシングルクォーテーションを使う。 × char test = "\0"; ○ char test = '\0';ヌル文字は表示上1文字だが\はエスケープシークエンスなので1文字扱い

【C,はまった】空の文字宣言

下記だとコンパイルエラーになる。エラーメッセージは "empty character constant" C言語はヌル文字を入れる必要あり。 × char test = ''; ○ char test = '\0';ヌル文字は表示上2文字だが扱いとしては1文字なので シングルクォーテーションで囲む。

続 ポインタ・文字列   

C

まだまだ迷うので覚書。例外が多すぎるのが混乱の原因? ■文字列(文字ではない)の代入は基本的に不可。 例外として宣言の時はok × char test[40]; test = "hogehoge"; ○ char test[0] = "hogehoge" 宣言後の変数へ文字列代入はstrcpy,strcatか一文字ずつ…

ポインタと文字列

C

ArduinoでGPSからのデータを処理した際に使った,何度も忘れるポインタと文字列のおぼえがき。・C言語に文字列はない。 char st = "ABC" ←これはエラー char st[4] = "ABC" ←これはok <追記> これはC言語の特例。 本来は終端文字\0が必要だが宣言の時に限り\…