質問: "d"; ``` <774RRさんからの返答を受けて主に以下の点について質問文を修正しました> `enum`でまとめて定義するときはそれらが1つのグループであるかを考えるべきという視点から見ると`SYMBOL`は明らかに仲間外れで別に定義するほうが自然でした。 なお、`SYMBOL`の使用目的は`strtok_r()`の2つめの引数である`delim`です。 (返答を読んで改めて調べなおしたりしているうちに、自分が"何を分かっていなかったのか"とか"どこを遠回りしていたのか"が少しづつ見えてきた気がします......。)
回答: ``` const char* SYMBOL = (const char*) 'd'; ``` これは、`SYMBOL` を `strtok_r()` の第2引数 `delim` に渡すなら、おそらく ``` const char* SYMBOL = "d"; ``` ではないでしょうか。 もし、`"d"` と文字列で直接書くのでなく、文字コードを別に定義しておきたい、ということであれば、 ``` /* strtok_r() の区切り文字の文字コード */ #define SYMBOL_CHARCODE 100 const char SYMBOL[2] = { SYMBOL_CHARCODE, 0 }; ``` とすることもできます。 `#define` の代わりに `enum` を使うこともできますが、`enum` は 774RR さんの例にあるような一連の定数をひとまとめに定義するためのものであって、単体で(または無関係な定数と一緒に)定義するためのものではないので、ここで `enum` を使うことにはとても違和感を感じます。