「C言語」の版間の差分
提供: Wikinote
(→その他 (細かいこと)) |
(→覚え書き) |
||
行40: | 行40: | ||
123.46 -123.46 | 123.46 -123.46 | ||
123.4560012817 -123.4560012817 | 123.4560012817 -123.4560012817 | ||
+ | |||
+ | === 定数 === | ||
+ | {| | ||
+ | |- | ||
+ | | <code>long</code> || 123456789L | ||
+ | |} | ||
=== その他 (細かいこと) === | === その他 (細かいこと) === | ||
* <code>#define</code> 行の末尾にはセミコロンはいらない | * <code>#define</code> 行の末尾にはセミコロンはいらない | ||
* <code>extern</code> は'''宣言'''であって、定義ではない。つまり、領域の確保などは行われない。別ファイルで定義される変数などを利用する際に使う。''疑問'':ヘッダファイル中で <code>extern</code> 宣言した場合、定義するファイルからそのヘッダを <code>include</code> してもよいのか。 | * <code>extern</code> は'''宣言'''であって、定義ではない。つまり、領域の確保などは行われない。別ファイルで定義される変数などを利用する際に使う。''疑問'':ヘッダファイル中で <code>extern</code> 宣言した場合、定義するファイルからそのヘッダを <code>include</code> してもよいのか。 |
2009年2月3日 (火) 10:18時点における版
C 言語再考。
覚え書き
printf
のフォーマット
% で始まり、変換指定子で終わる。以下のプログラムで実験。
#include <stdio.h> int main(void) { float f; printf("1234567890 1234567890\n"); printf("---------------------\n"); f = 123.456; printf("%f %f\n", f, -f); // デフォルト printf("%.2f %.2f\n", f, -f); // 小数点以下桁 (精度) 指定 printf("%10f %10f\n", f, -f); // 最小幅指定 printf("%10.2f %10.2f\n", f, -f); printf("%010.2f %010.2f\n", f, -f); // 0 で埋める printf("%-10.2f %-10.2f\n", f, -f); // 左揃え printf("%+10.2f %+10.2f\n", f, -f); // 必ず符号をつける printf("%*.2f %*.2f\n", 15, f, 15, -f); // 引数による幅指定 printf("%*3$.2f %*3$.2f\n", f, -f, 20); // 引数による幅指定 (引数指定) printf("%.*3$f %.*3$f\n", f, -f, 10); // 引数による精度指定 (引数指定) return 0; }
実行結果は下記のようになる。
$ gcc -o printf printf.c; ./printf 1234567890 1234567890 --------------------- 123.456001 -123.456001 123.46 -123.46 123.456001 -123.456001 123.46 -123.46 0000123.46 -000123.46 123.46 -123.46 +123.46 -123.46 123.46 -123.46 123.46 -123.46 123.4560012817 -123.4560012817
定数
long |
123456789L |
その他 (細かいこと)
-
#define
行の末尾にはセミコロンはいらない -
extern
は宣言であって、定義ではない。つまり、領域の確保などは行われない。別ファイルで定義される変数などを利用する際に使う。疑問:ヘッダファイル中でextern
宣言した場合、定義するファイルからそのヘッダをinclude
してもよいのか。