「C言語」の版間の差分

提供: Wikinote
移動: 案内検索
(覚え書き)
(定数)
行42: 行42:
  
 
=== 定数 ===
 
=== 定数 ===
{|
+
{| border="1"
 +
! 定数の型 !! 例
 +
|-
 +
! <code>long</code>
 +
| align="right" | 123456789'''L'''
 +
|-
 +
! <code>unsigned</code>
 +
| align="right" | 123'''U'''
 +
|-
 +
! <code>unsigned long</code>
 +
| align="right" | 123456789'''UL'''
 +
|-
 +
! <code>double</code>
 +
| align="right" | 123.456
 +
|-
 +
! <code>unsigned double</code>
 +
| align="right" | 123.456'''L'''
 +
|-
 +
! <code>float</code>
 +
| align="right" | 123.456'''F'''
 +
|-
 +
! 8 進数
 +
| align="right" | '''0'''123
 +
|-
 +
! 16 進数
 +
| align="right" | '''0x'''335F
 +
|-
 +
! 16 進数 <code>unsigned long</code>
 +
| align="right" | '''0x'''12AB'''UL'''
 
|-
 
|-
| <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:29時点における版

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
unsigned 123U
unsigned long 123456789UL
double 123.456
unsigned double 123.456L
float 123.456F
8 進数 0123
16 進数 0x335F
16 進数 unsigned long 0x12ABUL

※大文字、小文字の区別はない。

その他 (細かいこと)

  • #define 行の末尾にはセミコロンはいらない
  • extern宣言であって、定義ではない。つまり、領域の確保などは行われない。別ファイルで定義される変数などを利用する際に使う。疑問:ヘッダファイル中で extern 宣言した場合、定義するファイルからそのヘッダを include してもよいのか。