#author("2024-07-12T09:06:47+00:00","default:yoya","yoya") #author("2024-08-27T01:49:15+00:00","default:yoya","yoya") TITLE:C言語 [[ProgrammingLanguage]] > [[C]] - C言語 FAQ 日本語訳 -- http://www.kouno.jp/home/c_faq/ - Notes on Programming in C -- http://doc.cat-v.org/bell_labs/pikestyle * 規格 [#n3ffc7cb] - K&R (Classic C) - C89/C90 (ANSI C) - C99 - [[C11]] * 開発環境 [#devenv] - [[GCC]] - [[Clang]] * コンパイル [#compile] - 実行ファイル(a.out とか a.ext)を作り、それを shell から指定して実行する。 - ヘッダで関数の引数や帰り値の型をチェックする ** 分割コンパイル [#rdea4ae8] - コンパイルは .o というオブジェクトファイルを生成して、そこから a.out に変換する - 複数の .o をまとめて1つの a.out にする事が出来る。(リンカの仕事) - 複数のファイルに処理を分割してバラバラにコンパイルし、後で連結する方法。 - そのうち一つのファイルだけ編集があった時に、それだけコンパイル出来るので、全体としてのコンパイル時間が短くて済む。 * ポインタ変数 [#pointer] - 何らかの変数の場所を差す変数 - alias として使える - 配列としても使える。 - 実装的には、単にメモリのアドレス値が入ってる。 * 32bit/64bit [#bitwidth] |type |LP32 |ILP32|LP64|ILP64|LLP64|h |char |8 |8 |8 |8 | 8 | |short |16 |16 |16 |16 | 16 | |int |16 |32 |32 |64 | 32 | |long |32 |32 |64 |64 | 32 | |long long | .| . |64 |64 | 64 | |void * |32 |32 |64 |64 | 64 | - 参考) http://www.wdic.org/w/TECH/%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B%E3%83%A2%E3%83%87%E3%83%AB#32xE2x86x9264 * コード解析 [#n19f7de5] - Clang Static Analyzer -- http://clang-analyzer.llvm.org/ * その他 [#rel] - 全てのCプログラマが未定義な振る舞いについて知っておくべきこと #1/3 -- http://blog-ja.intransient.info/2011/05/c-13.html?m=1 - C言語(標準)にM_PIは無い -- http://qnighy.hatenablog.com/entry/2015/05/22/225558 - データ型とリテラル -- https://programming.pc-note.net/c/type.html#overflow - C Is Not a Low-level Language - Your computer is not a fast PDP-11. -- https://queue.acm.org/detail.cfm?id=3212479 - [[getopt]] * 関連 [#rel] - [[GCC]] | [[Clang]] - [[プログラミング言語>ProgrammingLanguage]] - [[C++>CPlusPlus]] - [[D言語>D]]