0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

7.4 Character handling <ctype.h>, CN3054:2022 (16) p206.c

Last updated at Posted at 2022-11-20

はじめに(Introduction)

N3054 Working Draft, Standard for Programming Language C

C++ nは、ISO/IEC JTC1 SC22 WG14の作業原案(Working Draft)です。
公式のISO/IEC 9899原本ではありません。

ISO/IEC JTC1 SC22 のWG14を含むいくつかのWGでは、可能な限り作業文書を公開し、幅広い意見を求めています。

ISO/IEC JTC1 SC7からISO/IEC JTC1 SC22リエゾンとして、2000年頃、C/C++の品質向上に貢献しようとした活動をしていたことがあります。その頃は、まだISO/IEC TS 17961の原案が出る前です。Cの精神が優勢で、セキュリティ対策は補助的な位置付けでした。ISO/IEC TS 17961の制定と、C/C++のライブラリ類の見直しと、C++の進化はどんどん進んでいきます。 

進化の具合が、どちらに行こうとしているかは、コンパイルて実行させてみないとわかりません。C/C++の規格案の電子ファイルは、そのままコンパイルできる形式であるとよいと主張してきました。MISRA-C/C++, CERTC/C++でも同様です。MISRA-C/C++は、Example Suiteという形で、コード断片をコンパイルできる形で提供するようになりました。

一連の記事はコード断片をコンパイルできる形にする方法を検討してコンパイル、リンク、実行して、規格案の原文と処理系(gcc, clang)との違いを確認し、技術内容を検討し、ISO/IEC JTC1 SC22 WG21にフィードバックするために用います。
また、CERT C/C++, MISRA C/C++等のコーディング標準のコード断片をコンパイルする際の参考にさせていただこうと考えています。CERT C++, MISRA C++が標準化の動きとの時間的なずれがあれば確認できれば幸いです。また、boostライブラリとの関連、Linux OS, 箱庭プロジェクト、g++(GCC), clang++(LLVM)との関係も調査中です。
何か、抜け漏れ、耳より情報がありましたらおしらせくださると幸いです。

最新規格はCN3096

<この項は書きかけです。順次追記します。>

背景(back ground)

C/C++でコンパイルエラーが出ると、途方にくれることがしばしばあります。
何回かに1回は、該当するエラーが検索できます。
ただ、条件が違っていて、そこでの修正方法では目的を達成しないこともしばしばです。いろいろな条件のコンパイルエラーとその対応方法について、広く記録することによって、いつか同じエラーに遭遇した時にやくに立つことを目指しています。

過去に何度か、自分のネットでの記録に助けられたことがあります。

また
https://researchmap.jp/joub9b3my-1797580/#_1797580
に記載したサイトのお世話になっています。

作業方針(sequence)

clangでは--std=c11, -std=C17 -std=c2xの3種類
gccでは-std=c11, -std=C17 -std=c2xの3種類
でコンパイルし、

1)コンパイルエラーを収集する。
2)コンパイルエラーをなくす方法を検討する。
コンパイルエラーになる例を示すだけが目的のコードは、コンパイルエラーをなくすのではなく、コンパイルエラーの種類を収集するだけにする。
文法を示すのが目的のコード場合に、コンパイルエラーをなくすのに手間がかかる場合は、順次作業します。
3)リンクエラーをなくす方法を検討する。
文法を示すのが目的のコード場合に、リンクエラーをなくすのに手間がかかる場合は、順次作業します。
4)意味のある出力を作る。
コンパイル、リンクが通っても、意味のある出力を示そうとすると、コンパイル・リンクエラーが出て収拾できそうにない場合がある。順次作業します。

1)だけのものから4)まで進んだものと色々ある状態です。一歩でも前に進むご助言をお待ちしています。「検討事項」の欄に現状を記録するようにしています。

bash
$ docker run -v /Users/ogawakiyoshi/n4910/n3540:/Users/ogawakiyoshi/n4910/n3540 -it kaizenjapan/n3540 /bin/bash

読書感想文

CコンパイラによるC言語規格の読書感想文として掲載しています。

コンパイル実験が、CN3242に対する、gccとclangによる感想文だということご理解いただけると幸いです。

読書感想文は人間かAIだけが作るものとは限りません。
本(電子書籍を含む)を入力として、その内容に対する文字列を読書感想文として受け止めましょう。
元の文章をあり方、コンパイルできるように電子化しておくこと、コンパイラが解釈可能な断片の作り方など。

個人開発

Cコンパイラの試験を一人でもくもくとやっているのは個人開発の一つの姿です。

<この項は書きかけです。順次追記します。>

編纂器(Compiler)

clang --version

Debian clang version 14.0.6-++20220622053050+f28c006a5895-1~exp1~20220622173135.152
Target: x86_64-pc-linux-gnu Thread model: posix InstalledDir: /usr/bin

gcc --version

gcc (GCC) 12.1.0 Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

7.4 Character handling , CN3054:2022 (16) p206.c

算譜(source code)

p206.c
// CN3054 Committee Draft, Standard for Programming Language C
// http://www.open-std.org/jtc1/sc22/wg14/docs/papers/2022/n3054.pdf
const char * n3054 = " 7.4 Character handling <ctype.h>, CN3054:2022 (16) p206.c";
// Debian clang version 14.0.5-++20220610033153+c12386ae247c-
// g++ (GCC) 12.1.0 Copyright (C) 2022 Free Software Foundation, Inc.
// Edited by Dr. OGAWA Kiyoshi. Compile procedure and results record.
// C++N3054:2022 Standard Working Draft on ISO/IEC 14882(0) sample code compile list

#include "N3054.h"

// 7.4.1 Character classification functions
//  The functions in this subclause return nonzero (true) if and only if the value of the argument c conforms to that in the description of the function.
// 7.4.1.1 The isalnum function Synopsis
//  The isalnum function tests for any character for which isalpha or isdigit is true.
// 7.4.1.2 The isalpha function
// Synopsis
//  The isalpha function tests for any character for which isupper or islower is true, or any character that is one of a locale-specific set of alphabetic characters for which none of iscntrl, isdigit, ispunct, or isspace is true.250) In the "C" locale, isalpha returns true only for the characters for which isupper or islower is true.
// 7.4.1.3 The isblank function Synopsis
// The isblank function tests for any character that is a standard blank character or is one of a locale- specific set of characters for which isspace is true and that is used to separate words within a line of text. The standard blank characters are the following: space (’ ’), and horizontal tab (’\t’). In the "C" locale, isblank returns true only for the standard blank characters.
// 248)See "future library directions" (7.33.2).
// 249)In an implementation that uses the seven-bit US ASCII character set, the printing characters are those whose values lie from 0x20 (space) through 0x7E (tilde); the control characters are those whose values lie from 0 (NUL) through 0x1F (US), and the character 0x7F (DEL).
// 250)The functions islower and isupper test true or false separately for each of these additional characters; all four combina- tions are possible.
//        Description
//    Description
// Description
#include <ctype.h>
int isalnum(int c);
#include <ctype.h>
int isalpha(int c);
#include <ctype.h>
int isblank(int c);
// 7.4.1.4 The iscntrl function Synopsis
//  The iscntrl function tests for any control character. 7.4.1.5 The isdigit function
// Synopsis
//  The isdigit function tests for any decimal-digit character (as defined in 5.2.1). 7.4.1.6 The isgraph function
// Synopsis
//  The isgraph function tests for any printing character except space (’ ’). 7.4.1.7 The islower function
// Synopsis
//  The islower function tests for any character that is a lowercase letter or is one of a locale-specific set of characters for which none of iscntrl, isdigit, ispunct, or isspace is true. In the "C" locale, islower returns true only for the lowercase letters (as defined in 5.2.1).
// 7.4.1.8 The isprint function Synopsis
//  The isprint function tests for any printing character including space (’ ’). 7.4.1.9 The ispunct function
// Synopsis
//  The ispunct function tests for any printing character that is one of a locale-specific set of punctuation characters for which neither isspace nor isalnum is true. In the "C" locale, ispunct returns true for every printing character for which neither isspace nor isalnum is true.
//          Description
//   Description
//  Description
//  Description
// Description
// Description
#include <ctype.h>
int iscntrl(int c);
#include <ctype.h>
int isdigit(int c);
#include <ctype.h>
int isgraph(int c);
#include <ctype.h>
int islower(int c);
#include <ctype.h>
int isprint(int c);
#include <ctype.h>
int ispunct(int c);
//  7.4.1.10 The isspace function
// Synopsis
//  The isspace function tests for any character that is a standard white-space character or is one of a locale-specific set of characters for which isalnum is false. The standard white-space characters are the following: space (’ ’), form feed (’\f’), new-line (’\n’), carriage return (’\r’), horizontal tab (’\t’), and vertical tab (’\v’). In the "C" locale, isspace returns true only for the standard white-space characters.
// 7.4.1.11 The isupper function Synopsis
//  The isupper function tests for any character that is an uppercase letter or is one of a locale-specific set of characters for which none of iscntrl, isdigit, ispunct, or isspace is true. In the "C" locale, isupper returns true only for the uppercase letters (as defined in 5.2.1).
// 7.4.1.12 The isxdigit function Synopsis
//  The isxdigit function tests for any hexadecimal-digit character (as defined in 6.4.4.1).
// 7.4.2 Character case mapping functions
// 7.4.2.1 The tolower function
// Synopsis
// The tolower function converts an uppercase letter to a corresponding lowercase letter. Returns
//  If the argument is a character for which isupper is true and there are one or more corresponding characters, as specified by the current locale, for which islower is true, the tolower function returns one of the corresponding characters (always the same one for any given locale); otherwise, the argument is returned unchanged.
// Description
//  Description
//  Description
// Description
#include <ctype.h>
int isspace(int c);
#include <ctype.h>
int isupper(int c);
#include <ctype.h>
int isxdigit(int c);
#include <ctype.h>
int tolower(int c);
// 7.4.2.2 The toupper function
// Synopsis
//  The toupper function converts a lowercase letter to a corresponding uppercase letter.
//         Description
#include <ctype.h> 
int toupper(int c);
// Returns
//  If the argument is a character for which islower is true and there are one or more corresponding characters, as specified by the current locale, for which isupper is true, the toupper function returns one of the corresponding characters (always the same one for any given locale); otherwise, the argument is returned unchanged.
int main() {
//    PR3(st.a,st.b,st.c,d);
    printf("%s\n", n3054);
    return EXIT_SUCCESS;
}

編纂・実行結果(compile and go)

bash

$ clang p206.c -std=11 -o p206l -I. -Wall
p206.c:27:17: error: expected ')'
int isalnum(int c);
                ^
p206.c:27:5: note: to match this '('
int isalnum(int c);
    ^
/usr/include/ctype.h:189:31: note: expanded from macro 'isalnum'
# define isalnum(c)     __isctype((c), _ISalnum)
                                  ^
p206.c:27:5: error: expected expression
int isalnum(int c);
    ^
/usr/include/ctype.h:189:21: note: expanded from macro 'isalnum'
# define isalnum(c)     __isctype((c), _ISalnum)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:27:5: error: expected ')'
/usr/include/ctype.h:189:21: note: expanded from macro 'isalnum'
# define isalnum(c)     __isctype((c), _ISalnum)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:27:5: note: to match this '('
/usr/include/ctype.h:189:21: note: expanded from macro 'isalnum'
# define isalnum(c)     __isctype((c), _ISalnum)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:29:17: error: expected ')'
int isalpha(int c);
                ^
p206.c:29:5: note: to match this '('
int isalpha(int c);
    ^
/usr/include/ctype.h:190:31: note: expanded from macro 'isalpha'
# define isalpha(c)     __isctype((c), _ISalpha)
                                  ^
p206.c:29:5: error: expected expression
int isalpha(int c);
    ^
/usr/include/ctype.h:190:21: note: expanded from macro 'isalpha'
# define isalpha(c)     __isctype((c), _ISalpha)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:29:5: error: expected ')'
/usr/include/ctype.h:190:21: note: expanded from macro 'isalpha'
# define isalpha(c)     __isctype((c), _ISalpha)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:29:5: note: to match this '('
/usr/include/ctype.h:190:21: note: expanded from macro 'isalpha'
# define isalpha(c)     __isctype((c), _ISalpha)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:31:17: error: expected ')'
int isblank(int c);
                ^
p206.c:31:5: note: to match this '('
int isblank(int c);
    ^
/usr/include/ctype.h:201:33: note: expanded from macro 'isblank'
#   define isblank(c)   __isctype((c), _ISblank)
                                  ^
p206.c:31:5: error: expected expression
int isblank(int c);
    ^
/usr/include/ctype.h:201:23: note: expanded from macro 'isblank'
#   define isblank(c)   __isctype((c), _ISblank)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:31:5: error: expected ')'
/usr/include/ctype.h:201:23: note: expanded from macro 'isblank'
#   define isblank(c)   __isctype((c), _ISblank)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:31:5: note: to match this '('
/usr/include/ctype.h:201:23: note: expanded from macro 'isblank'
#   define isblank(c)   __isctype((c), _ISblank)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:51:17: error: expected ')'
int iscntrl(int c);
                ^
p206.c:51:5: note: to match this '('
int iscntrl(int c);
    ^
/usr/include/ctype.h:191:31: note: expanded from macro 'iscntrl'
# define iscntrl(c)     __isctype((c), _IScntrl)
                                  ^
p206.c:51:5: error: expected expression
int iscntrl(int c);
    ^
/usr/include/ctype.h:191:21: note: expanded from macro 'iscntrl'
# define iscntrl(c)     __isctype((c), _IScntrl)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:51:5: error: expected ')'
/usr/include/ctype.h:191:21: note: expanded from macro 'iscntrl'
# define iscntrl(c)     __isctype((c), _IScntrl)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:51:5: note: to match this '('
/usr/include/ctype.h:191:21: note: expanded from macro 'iscntrl'
# define iscntrl(c)     __isctype((c), _IScntrl)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:53:17: error: expected ')'
int isdigit(int c);
                ^
p206.c:53:5: note: to match this '('
int isdigit(int c);
    ^
/usr/include/ctype.h:192:31: note: expanded from macro 'isdigit'
# define isdigit(c)     __isctype((c), _ISdigit)
                                  ^
p206.c:53:5: error: expected expression
int isdigit(int c);
    ^
/usr/include/ctype.h:192:21: note: expanded from macro 'isdigit'
# define isdigit(c)     __isctype((c), _ISdigit)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:53:5: error: expected ')'
/usr/include/ctype.h:192:21: note: expanded from macro 'isdigit'
# define isdigit(c)     __isctype((c), _ISdigit)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:53:5: note: to match this '('
/usr/include/ctype.h:192:21: note: expanded from macro 'isdigit'
# define isdigit(c)     __isctype((c), _ISdigit)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:55:17: error: expected ')'
int isgraph(int c);
                ^
p206.c:55:5: note: to match this '('
int isgraph(int c);
    ^
/usr/include/ctype.h:194:31: note: expanded from macro 'isgraph'
# define isgraph(c)     __isctype((c), _ISgraph)
                                  ^
p206.c:55:5: error: expected expression
int isgraph(int c);
    ^
/usr/include/ctype.h:194:21: note: expanded from macro 'isgraph'
# define isgraph(c)     __isctype((c), _ISgraph)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:55:5: error: expected ')'
/usr/include/ctype.h:194:21: note: expanded from macro 'isgraph'
# define isgraph(c)     __isctype((c), _ISgraph)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:55:5: note: to match this '('
/usr/include/ctype.h:194:21: note: expanded from macro 'isgraph'
# define isgraph(c)     __isctype((c), _ISgraph)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:57:17: error: expected ')'
int islower(int c);
                ^
p206.c:57:5: note: to match this '('
int islower(int c);
    ^
/usr/include/ctype.h:193:31: note: expanded from macro 'islower'
# define islower(c)     __isctype((c), _ISlower)
                                  ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.

$ clang p206.c -std=17 -o p206l -I. -Wall
p206.c:27:17: error: expected ')'
int isalnum(int c);
                ^
p206.c:27:5: note: to match this '('
int isalnum(int c);
    ^
/usr/include/ctype.h:189:31: note: expanded from macro 'isalnum'
# define isalnum(c)     __isctype((c), _ISalnum)
                                  ^
p206.c:27:5: error: expected expression
int isalnum(int c);
    ^
/usr/include/ctype.h:189:21: note: expanded from macro 'isalnum'
# define isalnum(c)     __isctype((c), _ISalnum)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:27:5: error: expected ')'
/usr/include/ctype.h:189:21: note: expanded from macro 'isalnum'
# define isalnum(c)     __isctype((c), _ISalnum)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:27:5: note: to match this '('
/usr/include/ctype.h:189:21: note: expanded from macro 'isalnum'
# define isalnum(c)     __isctype((c), _ISalnum)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:29:17: error: expected ')'
int isalpha(int c);
                ^
p206.c:29:5: note: to match this '('
int isalpha(int c);
    ^
/usr/include/ctype.h:190:31: note: expanded from macro 'isalpha'
# define isalpha(c)     __isctype((c), _ISalpha)
                                  ^
p206.c:29:5: error: expected expression
int isalpha(int c);
    ^
/usr/include/ctype.h:190:21: note: expanded from macro 'isalpha'
# define isalpha(c)     __isctype((c), _ISalpha)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:29:5: error: expected ')'
/usr/include/ctype.h:190:21: note: expanded from macro 'isalpha'
# define isalpha(c)     __isctype((c), _ISalpha)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:29:5: note: to match this '('
/usr/include/ctype.h:190:21: note: expanded from macro 'isalpha'
# define isalpha(c)     __isctype((c), _ISalpha)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:31:17: error: expected ')'
int isblank(int c);
                ^
p206.c:31:5: note: to match this '('
int isblank(int c);
    ^
/usr/include/ctype.h:201:33: note: expanded from macro 'isblank'
#   define isblank(c)   __isctype((c), _ISblank)
                                  ^
p206.c:31:5: error: expected expression
int isblank(int c);
    ^
/usr/include/ctype.h:201:23: note: expanded from macro 'isblank'
#   define isblank(c)   __isctype((c), _ISblank)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:31:5: error: expected ')'
/usr/include/ctype.h:201:23: note: expanded from macro 'isblank'
#   define isblank(c)   __isctype((c), _ISblank)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:31:5: note: to match this '('
/usr/include/ctype.h:201:23: note: expanded from macro 'isblank'
#   define isblank(c)   __isctype((c), _ISblank)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:51:17: error: expected ')'
int iscntrl(int c);
                ^
p206.c:51:5: note: to match this '('
int iscntrl(int c);
    ^
/usr/include/ctype.h:191:31: note: expanded from macro 'iscntrl'
# define iscntrl(c)     __isctype((c), _IScntrl)
                                  ^
p206.c:51:5: error: expected expression
int iscntrl(int c);
    ^
/usr/include/ctype.h:191:21: note: expanded from macro 'iscntrl'
# define iscntrl(c)     __isctype((c), _IScntrl)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:51:5: error: expected ')'
/usr/include/ctype.h:191:21: note: expanded from macro 'iscntrl'
# define iscntrl(c)     __isctype((c), _IScntrl)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:51:5: note: to match this '('
/usr/include/ctype.h:191:21: note: expanded from macro 'iscntrl'
# define iscntrl(c)     __isctype((c), _IScntrl)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:53:17: error: expected ')'
int isdigit(int c);
                ^
p206.c:53:5: note: to match this '('
int isdigit(int c);
    ^
/usr/include/ctype.h:192:31: note: expanded from macro 'isdigit'
# define isdigit(c)     __isctype((c), _ISdigit)
                                  ^
p206.c:53:5: error: expected expression
int isdigit(int c);
    ^
/usr/include/ctype.h:192:21: note: expanded from macro 'isdigit'
# define isdigit(c)     __isctype((c), _ISdigit)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:53:5: error: expected ')'
/usr/include/ctype.h:192:21: note: expanded from macro 'isdigit'
# define isdigit(c)     __isctype((c), _ISdigit)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:53:5: note: to match this '('
/usr/include/ctype.h:192:21: note: expanded from macro 'isdigit'
# define isdigit(c)     __isctype((c), _ISdigit)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:55:17: error: expected ')'
int isgraph(int c);
                ^
p206.c:55:5: note: to match this '('
int isgraph(int c);
    ^
/usr/include/ctype.h:194:31: note: expanded from macro 'isgraph'
# define isgraph(c)     __isctype((c), _ISgraph)
                                  ^
p206.c:55:5: error: expected expression
int isgraph(int c);
    ^
/usr/include/ctype.h:194:21: note: expanded from macro 'isgraph'
# define isgraph(c)     __isctype((c), _ISgraph)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:55:5: error: expected ')'
/usr/include/ctype.h:194:21: note: expanded from macro 'isgraph'
# define isgraph(c)     __isctype((c), _ISgraph)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:55:5: note: to match this '('
/usr/include/ctype.h:194:21: note: expanded from macro 'isgraph'
# define isgraph(c)     __isctype((c), _ISgraph)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:57:17: error: expected ')'
int islower(int c);
                ^
p206.c:57:5: note: to match this '('
int islower(int c);
    ^
/usr/include/ctype.h:193:31: note: expanded from macro 'islower'
# define islower(c)     __isctype((c), _ISlower)
                                  ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.

$ clang p206.c -std=2x -o p206l -I. -Wall
p206.c:27:17: error: expected ')'
int isalnum(int c);
                ^
p206.c:27:5: note: to match this '('
int isalnum(int c);
    ^
/usr/include/ctype.h:189:31: note: expanded from macro 'isalnum'
# define isalnum(c)     __isctype((c), _ISalnum)
                                  ^
p206.c:27:5: error: expected expression
int isalnum(int c);
    ^
/usr/include/ctype.h:189:21: note: expanded from macro 'isalnum'
# define isalnum(c)     __isctype((c), _ISalnum)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:27:5: error: expected ')'
/usr/include/ctype.h:189:21: note: expanded from macro 'isalnum'
# define isalnum(c)     __isctype((c), _ISalnum)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:27:5: note: to match this '('
/usr/include/ctype.h:189:21: note: expanded from macro 'isalnum'
# define isalnum(c)     __isctype((c), _ISalnum)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:29:17: error: expected ')'
int isalpha(int c);
                ^
p206.c:29:5: note: to match this '('
int isalpha(int c);
    ^
/usr/include/ctype.h:190:31: note: expanded from macro 'isalpha'
# define isalpha(c)     __isctype((c), _ISalpha)
                                  ^
p206.c:29:5: error: expected expression
int isalpha(int c);
    ^
/usr/include/ctype.h:190:21: note: expanded from macro 'isalpha'
# define isalpha(c)     __isctype((c), _ISalpha)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:29:5: error: expected ')'
/usr/include/ctype.h:190:21: note: expanded from macro 'isalpha'
# define isalpha(c)     __isctype((c), _ISalpha)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:29:5: note: to match this '('
/usr/include/ctype.h:190:21: note: expanded from macro 'isalpha'
# define isalpha(c)     __isctype((c), _ISalpha)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:31:17: error: expected ')'
int isblank(int c);
                ^
p206.c:31:5: note: to match this '('
int isblank(int c);
    ^
/usr/include/ctype.h:201:33: note: expanded from macro 'isblank'
#   define isblank(c)   __isctype((c), _ISblank)
                                  ^
p206.c:31:5: error: expected expression
int isblank(int c);
    ^
/usr/include/ctype.h:201:23: note: expanded from macro 'isblank'
#   define isblank(c)   __isctype((c), _ISblank)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:31:5: error: expected ')'
/usr/include/ctype.h:201:23: note: expanded from macro 'isblank'
#   define isblank(c)   __isctype((c), _ISblank)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:31:5: note: to match this '('
/usr/include/ctype.h:201:23: note: expanded from macro 'isblank'
#   define isblank(c)   __isctype((c), _ISblank)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:51:17: error: expected ')'
int iscntrl(int c);
                ^
p206.c:51:5: note: to match this '('
int iscntrl(int c);
    ^
/usr/include/ctype.h:191:31: note: expanded from macro 'iscntrl'
# define iscntrl(c)     __isctype((c), _IScntrl)
                                  ^
p206.c:51:5: error: expected expression
int iscntrl(int c);
    ^
/usr/include/ctype.h:191:21: note: expanded from macro 'iscntrl'
# define iscntrl(c)     __isctype((c), _IScntrl)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:51:5: error: expected ')'
/usr/include/ctype.h:191:21: note: expanded from macro 'iscntrl'
# define iscntrl(c)     __isctype((c), _IScntrl)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:51:5: note: to match this '('
/usr/include/ctype.h:191:21: note: expanded from macro 'iscntrl'
# define iscntrl(c)     __isctype((c), _IScntrl)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:53:17: error: expected ')'
int isdigit(int c);
                ^
p206.c:53:5: note: to match this '('
int isdigit(int c);
    ^
/usr/include/ctype.h:192:31: note: expanded from macro 'isdigit'
# define isdigit(c)     __isctype((c), _ISdigit)
                                  ^
p206.c:53:5: error: expected expression
int isdigit(int c);
    ^
/usr/include/ctype.h:192:21: note: expanded from macro 'isdigit'
# define isdigit(c)     __isctype((c), _ISdigit)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:53:5: error: expected ')'
/usr/include/ctype.h:192:21: note: expanded from macro 'isdigit'
# define isdigit(c)     __isctype((c), _ISdigit)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:53:5: note: to match this '('
/usr/include/ctype.h:192:21: note: expanded from macro 'isdigit'
# define isdigit(c)     __isctype((c), _ISdigit)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:55:17: error: expected ')'
int isgraph(int c);
                ^
p206.c:55:5: note: to match this '('
int isgraph(int c);
    ^
/usr/include/ctype.h:194:31: note: expanded from macro 'isgraph'
# define isgraph(c)     __isctype((c), _ISgraph)
                                  ^
p206.c:55:5: error: expected expression
int isgraph(int c);
    ^
/usr/include/ctype.h:194:21: note: expanded from macro 'isgraph'
# define isgraph(c)     __isctype((c), _ISgraph)
                        ^
/usr/include/ctype.h:89:32: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                               ^
p206.c:55:5: error: expected ')'
/usr/include/ctype.h:194:21: note: expanded from macro 'isgraph'
# define isgraph(c)     __isctype((c), _ISgraph)
                        ^
/usr/include/ctype.h:89:35: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
                                  ^
p206.c:55:5: note: to match this '('
/usr/include/ctype.h:194:21: note: expanded from macro 'isgraph'
# define isgraph(c)     __isctype((c), _ISgraph)
                        ^
/usr/include/ctype.h:89:3: note: expanded from macro '__isctype'
  ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
  ^
p206.c:57:17: error: expected ')'
int islower(int c);
                ^
p206.c:57:5: note: to match this '('
int islower(int c);
    ^
/usr/include/ctype.h:193:31: note: expanded from macro 'islower'
# define islower(c)     __isctype((c), _ISlower)
                                  ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.

$ gcc p206.c -std=11 -o p206g -I. -Wall
In file included from p206.c:26:
p206.c:27:17: error: expected ')' before 'c'
   27 | int isalnum(int c);
      |                 ^
p206.c:27:5: note: to match this '('
   27 | int isalnum(int c);
      |     ^~~~~~~
p206.c:27:5: error: expected expression before ')' token
   27 | int isalnum(int c);
      |     ^~~~~~~
p206.c:29:17: error: expected ')' before 'c'
   29 | int isalpha(int c);
      |                 ^
p206.c:29:5: note: to match this '('
   29 | int isalpha(int c);
      |     ^~~~~~~
p206.c:29:5: error: expected expression before ')' token
   29 | int isalpha(int c);
      |     ^~~~~~~
p206.c:31:17: error: expected ')' before 'c'
   31 | int isblank(int c);
      |                 ^
p206.c:31:5: note: to match this '('
   31 | int isblank(int c);
      |     ^~~~~~~
p206.c:31:5: error: expected expression before ')' token
   31 | int isblank(int c);
      |     ^~~~~~~
p206.c:51:17: error: expected ')' before 'c'
   51 | int iscntrl(int c);
      |                 ^
p206.c:51:5: note: to match this '('
   51 | int iscntrl(int c);
      |     ^~~~~~~
p206.c:51:5: error: expected expression before ')' token
   51 | int iscntrl(int c);
      |     ^~~~~~~
p206.c:53:17: error: expected ')' before 'c'
   53 | int isdigit(int c);
      |                 ^
p206.c:53:5: note: to match this '('
   53 | int isdigit(int c);
      |     ^~~~~~~
p206.c:53:5: error: expected expression before ')' token
   53 | int isdigit(int c);
      |     ^~~~~~~
p206.c:55:17: error: expected ')' before 'c'
   55 | int isgraph(int c);
      |                 ^
p206.c:55:5: note: to match this '('
   55 | int isgraph(int c);
      |     ^~~~~~~
p206.c:55:5: error: expected expression before ')' token
   55 | int isgraph(int c);
      |     ^~~~~~~
p206.c:57:17: error: expected ')' before 'c'
   57 | int islower(int c);
      |                 ^
p206.c:57:5: note: to match this '('
   57 | int islower(int c);
      |     ^~~~~~~
p206.c:57:5: error: expected expression before ')' token
   57 | int islower(int c);
      |     ^~~~~~~
p206.c:59:17: error: expected ')' before 'c'
   59 | int isprint(int c);
      |                 ^
p206.c:59:5: note: to match this '('
   59 | int isprint(int c);
      |     ^~~~~~~
p206.c:59:5: error: expected expression before ')' token
   59 | int isprint(int c);
      |     ^~~~~~~
p206.c:61:17: error: expected ')' before 'c'
   61 | int ispunct(int c);
      |                 ^
p206.c:61:5: note: to match this '('
   61 | int ispunct(int c);
      |     ^~~~~~~
p206.c:61:5: error: expected expression before ')' token
   61 | int ispunct(int c);
      |     ^~~~~~~
p206.c:79:17: error: expected ')' before 'c'
   79 | int isspace(int c);
      |                 ^
p206.c:79:5: note: to match this '('
   79 | int isspace(int c);
      |     ^~~~~~~
p206.c:79:5: error: expected expression before ')' token
   79 | int isspace(int c);
      |     ^~~~~~~
p206.c:81:17: error: expected ')' before 'c'
   81 | int isupper(int c);
      |                 ^
p206.c:81:5: note: to match this '('
   81 | int isupper(int c);
      |     ^~~~~~~
p206.c:81:5: error: expected expression before ')' token
   81 | int isupper(int c);
      |     ^~~~~~~
p206.c:83:18: error: expected ')' before 'c'
   83 | int isxdigit(int c);
      |                  ^
p206.c:83:5: note: to match this '('
   83 | int isxdigit(int c);
      |     ^~~~~~~~
p206.c:83:5: error: expected expression before ')' token
   83 | int isxdigit(int c);
      |     ^~~~~~~~

$ gcc p206.c -std=c17 -o p206g -I. -Wall
In file included from p206.c:26:
p206.c:27:17: error: expected ')' before 'c'
   27 | int isalnum(int c);
      |                 ^
p206.c:27:5: note: to match this '('
   27 | int isalnum(int c);
      |     ^~~~~~~
p206.c:27:5: error: expected expression before ')' token
   27 | int isalnum(int c);
      |     ^~~~~~~
p206.c:29:17: error: expected ')' before 'c'
   29 | int isalpha(int c);
      |                 ^
p206.c:29:5: note: to match this '('
   29 | int isalpha(int c);
      |     ^~~~~~~
p206.c:29:5: error: expected expression before ')' token
   29 | int isalpha(int c);
      |     ^~~~~~~
p206.c:31:17: error: expected ')' before 'c'
   31 | int isblank(int c);
      |                 ^
p206.c:31:5: note: to match this '('
   31 | int isblank(int c);
      |     ^~~~~~~
p206.c:31:5: error: expected expression before ')' token
   31 | int isblank(int c);
      |     ^~~~~~~
p206.c:51:17: error: expected ')' before 'c'
   51 | int iscntrl(int c);
      |                 ^
p206.c:51:5: note: to match this '('
   51 | int iscntrl(int c);
      |     ^~~~~~~
p206.c:51:5: error: expected expression before ')' token
   51 | int iscntrl(int c);
      |     ^~~~~~~
p206.c:53:17: error: expected ')' before 'c'
   53 | int isdigit(int c);
      |                 ^
p206.c:53:5: note: to match this '('
   53 | int isdigit(int c);
      |     ^~~~~~~
p206.c:53:5: error: expected expression before ')' token
   53 | int isdigit(int c);
      |     ^~~~~~~
p206.c:55:17: error: expected ')' before 'c'
   55 | int isgraph(int c);
      |                 ^
p206.c:55:5: note: to match this '('
   55 | int isgraph(int c);
      |     ^~~~~~~
p206.c:55:5: error: expected expression before ')' token
   55 | int isgraph(int c);
      |     ^~~~~~~
p206.c:57:17: error: expected ')' before 'c'
   57 | int islower(int c);
      |                 ^
p206.c:57:5: note: to match this '('
   57 | int islower(int c);
      |     ^~~~~~~
p206.c:57:5: error: expected expression before ')' token
   57 | int islower(int c);
      |     ^~~~~~~
p206.c:59:17: error: expected ')' before 'c'
   59 | int isprint(int c);
      |                 ^
p206.c:59:5: note: to match this '('
   59 | int isprint(int c);
      |     ^~~~~~~
p206.c:59:5: error: expected expression before ')' token
   59 | int isprint(int c);
      |     ^~~~~~~
p206.c:61:17: error: expected ')' before 'c'
   61 | int ispunct(int c);
      |                 ^
p206.c:61:5: note: to match this '('
   61 | int ispunct(int c);
      |     ^~~~~~~
p206.c:61:5: error: expected expression before ')' token
   61 | int ispunct(int c);
      |     ^~~~~~~
p206.c:79:17: error: expected ')' before 'c'
   79 | int isspace(int c);
      |                 ^
p206.c:79:5: note: to match this '('
   79 | int isspace(int c);
      |     ^~~~~~~
p206.c:79:5: error: expected expression before ')' token
   79 | int isspace(int c);
      |     ^~~~~~~
p206.c:81:17: error: expected ')' before 'c'
   81 | int isupper(int c);
      |                 ^
p206.c:81:5: note: to match this '('
   81 | int isupper(int c);
      |     ^~~~~~~
p206.c:81:5: error: expected expression before ')' token
   81 | int isupper(int c);
      |     ^~~~~~~
p206.c:83:18: error: expected ')' before 'c'
   83 | int isxdigit(int c);
      |                  ^
p206.c:83:5: note: to match this '('
   83 | int isxdigit(int c);
      |     ^~~~~~~~
p206.c:83:5: error: expected expression before ')' token
   83 | int isxdigit(int c);
      |     ^~~~~~~~

$ gcc p206.c -std=c2x -o p206g -I. -Wall
In file included from p206.c:26:
p206.c:27:17: error: expected ')' before 'c'
   27 | int isalnum(int c);
      |                 ^
p206.c:27:5: note: to match this '('
   27 | int isalnum(int c);
      |     ^~~~~~~
p206.c:27:5: error: expected expression before ')' token
   27 | int isalnum(int c);
      |     ^~~~~~~
p206.c:29:17: error: expected ')' before 'c'
   29 | int isalpha(int c);
      |                 ^
p206.c:29:5: note: to match this '('
   29 | int isalpha(int c);
      |     ^~~~~~~
p206.c:29:5: error: expected expression before ')' token
   29 | int isalpha(int c);
      |     ^~~~~~~
p206.c:31:17: error: expected ')' before 'c'
   31 | int isblank(int c);
      |                 ^
p206.c:31:5: note: to match this '('
   31 | int isblank(int c);
      |     ^~~~~~~
p206.c:31:5: error: expected expression before ')' token
   31 | int isblank(int c);
      |     ^~~~~~~
p206.c:51:17: error: expected ')' before 'c'
   51 | int iscntrl(int c);
      |                 ^
p206.c:51:5: note: to match this '('
   51 | int iscntrl(int c);
      |     ^~~~~~~
p206.c:51:5: error: expected expression before ')' token
   51 | int iscntrl(int c);
      |     ^~~~~~~
p206.c:53:17: error: expected ')' before 'c'
   53 | int isdigit(int c);
      |                 ^
p206.c:53:5: note: to match this '('
   53 | int isdigit(int c);
      |     ^~~~~~~
p206.c:53:5: error: expected expression before ')' token
   53 | int isdigit(int c);
      |     ^~~~~~~
p206.c:55:17: error: expected ')' before 'c'
   55 | int isgraph(int c);
      |                 ^
p206.c:55:5: note: to match this '('
   55 | int isgraph(int c);
      |     ^~~~~~~
p206.c:55:5: error: expected expression before ')' token
   55 | int isgraph(int c);
      |     ^~~~~~~
p206.c:57:17: error: expected ')' before 'c'
   57 | int islower(int c);
      |                 ^
p206.c:57:5: note: to match this '('
   57 | int islower(int c);
      |     ^~~~~~~
p206.c:57:5: error: expected expression before ')' token
   57 | int islower(int c);
      |     ^~~~~~~
p206.c:59:17: error: expected ')' before 'c'
   59 | int isprint(int c);
      |                 ^
p206.c:59:5: note: to match this '('
   59 | int isprint(int c);
      |     ^~~~~~~
p206.c:59:5: error: expected expression before ')' token
   59 | int isprint(int c);
      |     ^~~~~~~
p206.c:61:17: error: expected ')' before 'c'
   61 | int ispunct(int c);
      |                 ^
p206.c:61:5: note: to match this '('
   61 | int ispunct(int c);
      |     ^~~~~~~
p206.c:61:5: error: expected expression before ')' token
   61 | int ispunct(int c);
      |     ^~~~~~~
p206.c:79:17: error: expected ')' before 'c'
   79 | int isspace(int c);
      |                 ^
p206.c:79:5: note: to match this '('
   79 | int isspace(int c);
      |     ^~~~~~~
p206.c:79:5: error: expected expression before ')' token
   79 | int isspace(int c);
      |     ^~~~~~~
p206.c:81:17: error: expected ')' before 'c'
   81 | int isupper(int c);
      |                 ^
p206.c:81:5: note: to match this '('
   81 | int isupper(int c);
      |     ^~~~~~~
p206.c:81:5: error: expected expression before ')' token
   81 | int isupper(int c);
      |     ^~~~~~~
p206.c:83:18: error: expected ')' before 'c'
   83 | int isxdigit(int c);
      |                  ^
p206.c:83:5: note: to match this '('
   83 | int isxdigit(int c);
      |     ^~~~~~~~
p206.c:83:5: error: expected expression before ')' token
   83 | int isxdigit(int c);
      |     ^~~~~~~~

検討事項(agenda)

コンパイルエラーを取るか、コンパイルエラーの理由を解説する。

応用例1 MISRA C/C++

MISRA C まとめ #include

MISRA C++ 5-0-16

応用例2 CERT C/C++

SEI CERT C++ Coding Standard AA. Bibliography 確認中。

MISRA C/C++, AUTOSAR C++, CERT C/C++とC/C++工業標準をコンパイルする

自己参考資料(self reference)

関連する自己参照以外は、こちらの先頭に移転。

C言語(C++)に対する誤解、曲解、無理解、爽快。

C2011コンパイル一覧@researchmap

https://researchmap.jp/jownvh0ye-1797580/#_1797580

[C][C++]の国際規格案の例題をコンパイルするときの課題7つ。

C Puzzle Bookの有り難み5つ、C言語規格及びCコンパイラの特性を認識

dockerにclang

docker gnu(gcc/g++) and llvm(clang/clang++)

コンパイル用shell script C版(clangとgcc)とC++版(clang++とg++)

astyle 使ってみた

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>

文書履歴(document history)

ver. 0.01 初稿  20221120
ver. 0.02 ありがとう追記 20230622

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?