「C言語/データ型と変数の高度な話題」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
M s/実浮動小数点型/浮動小数点型/g;IBM語実浮動小数点型とJIS語浮動小数点型が混在していたので、JIS X 3010を根拠に浮動小数点型に統一。
Ef3 (トーク | 投稿記録)
<ref name="オブジェクトの記憶域期間"/>のundef解決。
タグ: 2017年版ソースエディター
3 行
記憶域クラス指定子とは次のいずれかである。
{|class="wikitable"
|+ C言語の記憶域クラス指定子
|-
! 記憶域クラス指定子 !! 意味
44 ⟶ 45行目:
 
==== typedefを構造体に用いる ====
[[{{See also|C言語/構造体・共用体#typedefを構造体に用いる]]を参照せよ。}}
 
==== typedefをポインタに用いる ====
{{See also|[[C言語/ポインタ#typedefをポインタに用いる]]を参照せよ。}}
 
=== extern ===
153 ⟶ 154行目:
</syntaxhighlight>
 
{{See also|[[#extern]]}}
識別子の結合については[[#extern]]を参照せよ。
 
以下、やや難しい解説。
165 ⟶ 166行目:
その生存期間はプログラム実行の全体とする。
その値はプログラム開始処理の前に一回だけ初期化する。
<ref name="オブジェクトの記憶域期間">『JISX3010:2003』p.24「6.2.4 オブジェクトの記憶域期間」</ref>
 
=== auto ===
384 ⟶ 385行目:
 
=== struct ===
構造体については、単元『[[{{See also|C言語/構造体・共用体]]』を参照せよ。}}
 
=== union ===
共用体については、単元『[[{{See also|C言語/構造体・共用体]]』を参照せよ。}}
 
=== enum ===
632 ⟶ 633行目:
</pre>
 
この例では、たとい幅で7ケタを指定していても、小数点以下のケタ数の指定が2なので、2ケタまでしか表示しないですされません
 
コンパイラによっては全体の幅を無視する場合もあるが、全体幅を指定する際には、なるべく正確な幅を指定しよう。幅が大きいぶんには、問題ない。
 
 
;指数表示
「%e」あるいは「%E」と書くと、指数表示で表示できます。
 
;コード例
649 ⟶ 648行目:
printf("%e \n", a);
printf("%E \n", a);
 
return 0;
}
 
</syntaxhighlight>
 
658 ⟶ 657行目:
<pre>
1.666667e+001
1.666667E+001
</pre>
 
なお、表示結果のe以降の数字は、10の何乗かを表しています。
 
指数関数の底 e(約2.771828であり、ラーピア数などと言われる)とは無関係ですので、混同しないように。
 
=== 文字列のフォーマット指定子 ===
文字列の幅を、たとえば「%.7s」のように、sの前の数値で指定できます。数値の直前にドット記号(.)がつくのに注意してください。(おそらくだが、ここのドット記号の由来は、浮動小数の精度のフォーマット指定のドット記号からの流用だろう。)
 
;コード例
687 行
 
フォーマット指定を「%.7s」と指定しているので、半角スペースも含めて最初から7文字目までが表示されています。
== 脚註 ==
<references/>
 
== 参考文献 ==
* 国際標準化機構/国際電気標準会議 [https://www.iso.org/obp/ui/#iso:std:iso-iec:9899:ed-4:v1:en ISO/IEC 9899:2018(en) Information technology — Programming languages — C](2018-07-05)
* 日本工業標準調査会(当時、現:日本産業標準調査会)『JISX3010 プログラム言語C』2003年12月20日改正
 
[[Category:C言語|てえたかたとへんすう]]