- The added line is THIS COLOR.
- The deleted line is THIS COLOR.
TITLE:C言語
[[ProgrammingLanguage]] > [[C]]
- C言語 FAQ 日本語訳
-- http://www.kouno.jp/home/c_faq/
* 32bit/64bit [#cdb52970]
|LP32 |ILP32|LP64|ILP64|LLP64|h
|char |8 |8 |8 |8 |
|short |16 |16 |16 |16 |
|int |16 |32 |64 |32 |
|long |32 |32 |64 |32 |
|long long | | | |64 |
|pointer|32 |32 |64 |64 |
- 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
- [[getopt]]
* 関連 [#rel]
- [[GCC]] | [[Clang]]
- [[プログラミング言語>ProgrammingLanguage]]
- [[C++>CPlusPlus]]
- [[D言語>D]]