C言語/記法

出典: フリー教科書『ウィキブックス(Wikibooks)』

目次

[編集] 文字集合

[1]

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個の図形文字
! " # % & ' ( ) * + , - . / :
; < = > ? [ \ ] ^ _ { | } ~
  • 空白文字
  • 制御文字(水平タブ、垂直タブ、書式送り)

[編集] 字句

字句と前処理字句の違いについては説明を省きました。

[2]

字句とはC言語の最小の字句的な単位である。 字句には、キーワード、識別子、国際文字名、定数、文字列リテラル、区切り子、ヘッダ名、前処理数、注釈などがある。

[編集] キーワード

[3]

キーワードとは次のいずれかである。

auto const
enum extern
inline register
restrict sizeof
static typedef
volatile _Complex
_Imaginary

C言語/基礎知識#データ型と変数の宣言・代入・参照

char
double
float
int
long
short
signed
unsigned
void

C言語/制御文

_Bool
break
case
continue
default
do
else
for
goto
if
return
switch
while
C言語/構造体・共用体
struct
union

キーワードとは特定の機能のために予約された字句であり、 その他の機能のためには使用できない。

ここでは個々のキーワードの機能については説明しません。
各キーワードのページが完成次第、ここからもリンクを張る予定です。

[編集] 識別子

[4]

識別子は1つ又はそれ以上の実体を指し示すもので、 半角英数、「_(下線)」からなる文字列である。 識別子に多バイト文字を使用できるかはコンパイラによる。 ただし、先頭は非数字でなければならない。

[編集] 国際文字名

書きかけ

[編集] 定数

書きかけ

[5]

・整数定数の接尾語については省略しました。
・浮動小数点定数の接尾語については省略しました。
・列挙定数については省略しました。

[編集] 文字列リテラル

書きかけ

[6]

[編集] 区切り子

[7]

区切り子とは次のいずれかである。

[] () {} . ->
++ -- & * + - ~ !
/ % << >> < > <= >== == != ^ | && ||
? : ; ...
= *= /= %= += -= <<= >>= &= ^= |=
, # ##
<: :> <% %> %: %:%:

区切り子とは、独立した構文的及び意味的な機能を持つ記号である。 何らかの操作を行うとき、それを演算子と呼ぶ。 また演算子が操作を行う対象をオペランドと呼ぶ。


[編集] ヘッダ名

書きかけ


[編集] 前処理数

書きかけ

[編集] 注釈

[8]

//注釈の例1
/*注釈の例2*/

注釈とはプログラマの覚え書きとしての単なるメモで、 プログラムの処理とは一切関係はない。 C言語では2種類の注釈表記方法があり、 「//」から行の終わりまで、または「/*」と「*/」とで囲まれた文章が注釈である。

[編集]

[9]

/*いくつかの字句*/;//「;(セミコロン)」で終わる

文とは実行すべき動作を記述したものであり、 空白類(空白、水平タブ、改行、垂直タブ、書式送り)で分けられたいくつかの字句からなり、「;(セミコロン)」で終わる。 文は基本的に上から下へ順番に実行される。

[編集] ブロック

[10]

{//ブロックの始まり
	//文
	//文
	//文
	//...
}//ブロックの終わり

ブロックとはいくつかの文を1つの構造的な単位にまとめたものである。

[編集] 脚注

  1. ^ 『JISX3010:2003』p.12「5.2.1 文字集合」
  2. ^ 『JISX3010:2003』p.35「6.4 字句要素」
  3. ^ 『JISX3010:2003』p.37「6.4.1 キーワード」
  4. ^ 『JISX3010:2003』p.37「6.4.2 識別子」
  5. ^ 『JISX3010:2003』p.39「6.4.4 定数」
  6. ^ 「JISX3010 6.4.5 文字列リテラル」では「文字列リテラル」と呼ばれているが、「文字列定数」と呼んで問題ないと思う。
  7. ^ 『JISX3010:2003』p.46「6.4.6 区切り子」
  8. ^ 『JISX3010:2003』p.48「6.4.9 注釈」
  9. ^ 『JISX3010:2003』p.99「6.8 文及びブロック」
  10. ^ 『JISX3010:2003』p.99「6.8 文及びブロック」
ヘルプ