tag:blogger.com,1999:blog-3636872937372639901.post4997275842648406735..comments2024-03-27T21:24:43.584+09:00Comments on 本の虫: LLVM/Clangがぜってーサポートしねーと宣言しているLinuxカーネルに多用されているGCC拡張江添亮http://www.blogger.com/profile/13387122818743087721noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-3636872937372639901.post-38879465497069020432013-04-19T17:04:27.871+09:002013-04-19T17:04:27.871+09:00なるほど。どうも。なるほど。どうも。江添亮https://www.blogger.com/profile/13387122818743087721noreply@blogger.comtag:blogger.com,1999:blog-3636872937372639901.post-5096615618199583372013-04-19T11:02:07.480+09:002013-04-19T11:02:07.480+09:00> ところで、C99の規格に、VLAISを禁止する文面が見当たらないのだが、どのへんに書かれて...> ところで、C99の規格に、VLAISを禁止する文面が見当たらないのだが、どのへんに書かれているのだろうか。<br /><br />通常の識別子(ordinary identifier)のVLAのみが許可されると書かれていますね。<br />VLAIS は通常の識別子ではないのでNG<br /><br /><br />6.7.5.2 Array declarators<br /><br />2 Only an ordinary identifier (as defined in 6.2.3) with both block scope or function<br />prototype scope and no linkage shall have a variably modified type.<br /><br />で、10 EXAMPLE 4 に not ordinary identifier として、構造体のメンバの例が載っています。<br /><br /><br />ordinary identifier は(抜粋なので不完全ですが)次のように定義されています。<br />6.2.3 Name spaces of identifiers<br />— the members of structures or unions; each structure or union has a separate name<br />space for its members (disambiguated by the type of the expression used to access the<br />member via the . or -> operator);<br />— all other identifiers, called ordinary identifiers (declared in ordinary declarators or as<br />enumeration constants).y121516https://www.blogger.com/profile/08642312926736245534noreply@blogger.comtag:blogger.com,1999:blog-3636872937372639901.post-89740983636889437772013-04-19T08:13:00.552+09:002013-04-19T08:13:00.552+09:00このへんかなぁ。
6.7.2.1/8
A member of a structure or unio...このへんかなぁ。<br />6.7.2.1/8<br />A member of a structure or union may have any object type other than a variably<br />modified type.<br /><br />6.7.5/3<br />A full declarator is a declarator that is not part of another declarator. The end of a full<br />declarator is a sequence point. If the nested sequence of declarators in a full declarator<br />contains a variable length array type, the type specified by the full declarator is said to be<br />variably modified.Anonymoushttps://www.blogger.com/profile/06705676002358246414noreply@blogger.comtag:blogger.com,1999:blog-3636872937372639901.post-55698387414379497882013-04-19T04:35:54.656+09:002013-04-19T04:35:54.656+09:00s/配列内/構造体内/g
かな?
s/配列内/構造体内/g<br />かな?<br />Anonymoushttps://www.blogger.com/profile/06705676002358246414noreply@blogger.com