C言語/記法
出典: フリー教科書『ウィキブックス(Wikibooks)』
< C言語
目次 |
[編集] 文字集合
C言語のプログラムは次にあげる文字を使って記述される。 また、次にあげる文字以外にもコンパイラが対応していれば使用できる。
- 26個のラテンアルファベットの大文字
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
- 26個のラテンアルファベットの小文字
a b c d e f g h i j k l m n o p q r s t u v w x y z
- 10個の10進数字
0 1 2 3 4 5 6 7 8 9
- 29個の図形文字
! " # % & ' ( ) * + , - . / :
; < = > ? [ \ ] ^ _ { | } ~
- 空白文字
- 制御文字(水平タブ、垂直タブ、書式送り)
[編集] 字句
字句と前処理字句の違いについては説明を省きました。
字句とはC言語の最小の字句的な単位である。 字句には、キーワード、識別子、国際文字名、定数、文字列リテラル、区切り子、ヘッダ名、前処理数、注釈などがある。
[編集] キーワード
キーワードとは次のいずれかである。
auto const enum extern inline register restrict sizeof static typedef volatile _Complex _Imaginary
char double float int long short signed unsigned void
_Bool break case continue default do else for goto if return switch while
struct union
キーワードとは特定の機能のために予約された字句であり、 その他の機能のためには使用できない。
ここでは個々のキーワードの機能については説明しません。 各キーワードのページが完成次第、ここからもリンクを張る予定です。
[編集] 識別子
識別子は1つ又はそれ以上の実体を指し示すもので、 半角英数、「_(下線)」からなる文字列である。 識別子に多バイト文字を使用できるかはコンパイラによる。 ただし、先頭は非数字でなければならない。
[編集] 国際文字名
書きかけ
[編集] 定数
書きかけ
・整数定数の接尾語については省略しました。 ・浮動小数点定数の接尾語については省略しました。 ・列挙定数については省略しました。
[編集] 文字列リテラル
書きかけ
[編集] 区切り子
区切り子とは次のいずれかである。
[] () {} . ->
++ -- & * + - ~ !
/ % << >> < > <= >== == != ^ | && ||
? : ; ...
= *= /= %= += -= <<= >>= &= ^= |=
, # ##
<: :> <% %> %: %:%:
区切り子とは、独立した構文的及び意味的な機能を持つ記号である。 何らかの操作を行うとき、それを演算子と呼ぶ。 また演算子が操作を行う対象をオペランドと呼ぶ。
[編集] ヘッダ名
書きかけ
[編集] 前処理数
書きかけ
[編集] 注釈
//注釈の例1 /*注釈の例2*/
注釈とはプログラマの覚え書きとしての単なるメモで、 プログラムの処理とは一切関係はない。 C言語では2種類の注釈表記方法があり、 「//」から行の終わりまで、または「/*」と「*/」とで囲まれた文章が注釈である。
[編集] 文
/*いくつかの字句*/;//「;(セミコロン)」で終わる
文とは実行すべき動作を記述したものであり、 空白類(空白、水平タブ、改行、垂直タブ、書式送り)で分けられたいくつかの字句からなり、「;(セミコロン)」で終わる。 文は基本的に上から下へ順番に実行される。
[編集] ブロック
{//ブロックの始まり
//文
//文
//文
//...
}//ブロックの終わり
ブロックとはいくつかの文を1つの構造的な単位にまとめたものである。
[編集] 脚注
- ^ 『JISX3010:2003』p.12「5.2.1 文字集合」
- ^ 『JISX3010:2003』p.35「6.4 字句要素」
- ^ 『JISX3010:2003』p.37「6.4.1 キーワード」
- ^ 『JISX3010:2003』p.37「6.4.2 識別子」
- ^ 『JISX3010:2003』p.39「6.4.4 定数」
- ^ 「JISX3010 6.4.5 文字列リテラル」では「文字列リテラル」と呼ばれているが、「文字列定数」と呼んで問題ないと思う。
- ^ 『JISX3010:2003』p.46「6.4.6 区切り子」
- ^ 『JISX3010:2003』p.48「6.4.9 注釈」
- ^ 『JISX3010:2003』p.99「6.8 文及びブロック」
- ^ 『JISX3010:2003』p.99「6.8 文及びブロック」