違いはありますか
static int * pn;
と
int static * pn;
基本的に、静的変数を指すポインターと、ある変数を指す静的ポインターの違いを探していますが、上記の2つの宣言がそれらに対応しているかどうかはわかりません。
Cでは違いはありませんが、2番目の形式は推奨されません。
(C99、6.11.5p1)「宣言内の宣言指定子の先頭以外にストレージクラス指定子を配置することは廃止された機能です」
いいえ、違いはありません。ここで、宣言指定子シーケンスはstatic int
orint static
であり、宣言指定子シーケンス内の指定子の順序は重要ではありません。両方の宣言の型は「pointertoint」です。
int static unsigned const* pn;
あなたが人々を十分に憎む場合のように、あなたは他の奇妙なことをすることができます。このトピックをカバーする質問/回答を書きました。