📄 cerrs.gml
字号:
:MSGJTXT. #endif偑懠偺僜乕僗僼傽僀儖'%s'偺#if偲懳墳偟偰偄傑偡
:WARNING. 1
This warning may indicate a
.kw #endif
nesting problem since the traditional usage of
.kw #if
directives is confined to the same source file.
This warning may often come before an error
and it is hoped will provide information to
solve a preprocessing directive problem.
:MSGSYM. ERR_LOSE_PRECISION
:MSGTXT. Possible loss of precision
:MSGJTXT. Possible loss of precision
:WARNING. 1
.np
This warning indicates that you may be converting a argument
of one size to another, different size. For instance, you may be
losing precision by passing a long argument to a function that
takes a short.
This warning is initially disabled. It must be explicitly enabled with
.us #pragma enable_message(130).
It can be disabled later by using
.us #pragma disable_message(130).
:MSGSYM. ERR_ASSUMED_IMPORT
:MSGTXT. No prototype found for function '%s'
:MSGJTXT. '%s'偺僾儘僩僞僀僾偑偁傝傑偣傫
:WARNING. 1
.np
A reference for a function appears in your program, but you do not
have a prototype for that function defined. Implicit prototype will
be used, but this will cause problems if the assumed prototype does
not match actual function definition.
:MSGSYM. ERR_NO_STG_OR_TYPE
:MSGTXT. No storage class or type specified
:MSGJTXT.
:WARNING. 1
.np
When declaring a data object, either storage class or data type must be
given. If no type is specified,
.kw int
is assumed. If no storage class is specified, the default depends on
scope (see the
.us C Language Reference
for details). For instance
.exam begin
auto i;
.exam end
is a valid declaration, as is
.exam begin
short i;
.exam end
However,
.exam begin
i;
.exam end
is not a correctly formed declaration.
:eMSGGRP. Warn1
:cmt -------------------------------------------------------------------
:MSGGRP. Warn2
:MSGGRPSTR. W
:MSGGRPNUM. 200
:MSGGRPTXT. Warning Level 2 Messages
:cmt -------------------------------------------------------------------
:MSGSYM. ERR_SYM_NOT_ASSIGNED
:MSGTXT. '%s' has been referenced but never assigned a value
:MSGJTXT. '%s'偼嶲徠偝傟傑偟偨偑丆抣偑戙擖偝傟偰偄傑偣傫
:WARNING. 2
.np
You have used the variable in an expression without previously assigning
a value to that variable.
:MSGSYM. ERR_DEAD_CODE
:MSGTXT. Unreachable code
:MSGJTXT. 幚峴偝傟側偄僐乕僪偱偡
:WARNING. 2
.np
The statement will never be executed, because there is no path through
the program that causes control to reach this statement.
:MSGSYM. ERR_SYM_NOT_REFERENCED
:MSGTXT. Symbol '%s' has been defined, but not referenced
:MSGJTXT. 僔儞儃儖'%s'偑掕媊偝傟傑偟偨偑丆嶲徠偝傟傑偣傫偱偟偨
:WARNING. 2
.np
There are no references to the declared variable.
The declaration for the variable can be deleted.
.np
In some cases, there may be a valid reason for retaining the variable.
You can prevent the message from being issued through use of
.us #pragma off(unreferenced).
:MSGSYM. ERR_UNDECLARED_PP_SYM
:MSGTXT. Preprocessing symbol '%s' has not been declared
:MSGJTXT. 慜張棟僔儞儃儖'%s'偑丆愰尵偝傟傑偣傫偱偟偨
:WARNING. 2
.np
The symbol has been used in a preprocessor expression.
The compiler assumes the symbol has a value of 0 and continues.
A
.id #define
may be required for the symbol, or you may have forgotten
to include the file which contains a
.id #define
for the symbol.
:eMSGGRP. Warn2
:cmt -------------------------------------------------------------------
:MSGGRP. Warn3
:MSGGRPSTR. W
:MSGGRPNUM. 300
:MSGGRPTXT. Warning Level 3 Messages
:cmt -------------------------------------------------------------------
:MSGSYM. ERR_NESTED_COMMENT
:MSGTXT. Nested comment found in comment started on line %u
:MSGJTXT. %u峴偐傜巒傑傞僐儊儞僩偺拞偵丆僱僗僩偵偝傟偨僐儊儞僩偑偁傝傑偡
:WARNING. 3
.np
While scanning a comment for its end, the compiler detected
.id /*
for the start of another comment.
Nested comments are not allowed in ANSI C.
You may be missing the
.id */
for the previous comment.
:MSGSYM. ERR_UNUSED_2
:MSGTXT. not used
:MSGJTXT. 偙偺儊僢僙乕僕偼巊梡偝傟傑偣傫
:WARNING. 2
unused message
:MSGSYM. ERR_USEFUL_SIDE_EFFECT
:MSGTXT. Expression is only useful for its side effects
:MSGJTXT. 偙偺幃偼暃嶌梡偺傒傪婲偙偟傑偡
:WARNING. 3
.np
You have an expression that would have generated the warning
"Meaningless use of an expression", except that it also contains
a side-effect, such as ++, &minus.&minus., or a function call.
:MSGSYM. ERR_PARM_NOT_REFERENCED
:MSGTXT. Parameter '%s' has been defined, but not referenced
:MSGJTXT. 僷儔儊乕僞'%s'偼掕媊偝傟傑偟偨偑丆嶲徠偝傟傑偣傫偱偟偨
:WARNING. 3
.np
There are no references to the declared parameter.
The declaration for the parameter can be deleted.
Since it is a parameter to a function, all calls to the function
must also have the value for that parameter deleted.
.np
In some cases, there may be a valid reason for retaining the parameter.
You can prevent the message from being issued through use of
.us #pragma off(unreferenced).
.np
This warning is initially disabled. It must be specifically enabled with
.us #pragma enable_message(303).
It can be disabled later by using
.us #pragma disable_message(303).
:MSGSYM. ERR_NO_RET_TYPE_GIVEN
:MSGTXT. Return type 'int' assumed for function '%s'
:MSGJTXT.
:WARNING. 3
.np
If a function is declared without specifying return type, such as
.exam begin
foo( void );
.exam end
then its return type will be assumed to be
.kw int
.
:MSGSYM. ERR_NO_DATA_TYPE_GIVEN
:MSGTXT. Type 'int' assumed in declaration of '%s'
:MSGJTXT.
:WARNING. 3
.np
If an object is declared without specifying its type, such as
.exam begin
register count;
.exam end
then its type will be assumed to be
.kw int
.
:eMSGGRP. Warn3
:cmt -------------------------------------------------------------------
:MSGGRP. Errs
:MSGGRPSTR. E
:MSGGRPNUM. 1000
:MSGGRPTXT. Error Messages
:cmt -------------------------------------------------------------------
:MSGSYM. ERR_MISPLACED_BREAK
:MSGTXT. BREAK must appear in while, do, for or switch statement
:MSGJTXT. BREAK偼while, do, for, switch暥偺拞偵側偗傟偽側傝傑偣傫
.np
A
.kw break
statement has been found in an illegal place in the program.
You may be missing an opening brace
.id {
for a
.kw while,
.kw do,
.kw for
or
.kw switch
statement.
:MSGSYM. ERR_MISPLACED_CASE
:MSGTXT. CASE must appear in switch statement
:MSGJTXT. CASE偼switch暥偺拞偵側偗傟偽側傝傑偣傫
.np
A
.kw case
label has been found that is not inside a
.kw switch
statement.
:MSGSYM. ERR_MISPLACED_CONTINUE
:MSGTXT. CONTINUE must appear in while, do or for statement
:MSGJTXT. CONTINUE偼while, do, for暥偺拞偵側偗傟偽側傝傑偣傫
.np
The
.kw continue
statement must be inside a
.kw while,
.kw do
or
.kw for
statement.
You may have too many
.id }
between the
.kw while,
.kw do
or
.kw for
statement and the
.kw continue
statement.
:MSGSYM. ERR_MISPLACED_DEFAULT
:MSGTXT. DEFAULT must appear in switch statement
:MSGJTXT. DEFAULT偼switch暥偺拞偵側偗傟偽側傝傑偣傫
.np
A
.kw default
label has been found that is not inside a
.kw switch
statement.
You may have too many
.id }
between the start of the
.kw switch
and the
.kw default
label.
:MSGSYM. ERR_MISPLACED_RIGHT_BRACE
:MSGTXT. Misplaced '}' or missing earlier '{'
:MSGJTXT. 娫堘偭偨埵抲偵'}'偑偁傞偐丆傕偭偲慜偵偁傞傋偒'{'偑偁傝傑偣傫
.np
An extra
.id }
has been found which cannot be matched up with an earlier
.id {.
:MSGSYM. ERR_MISPLACED_ELIF
:MSGTXT. Misplaced #elif directive
:MSGJTXT. #elif媅帡柦椷偺埵抲偑娫堘偭偰偄傑偡
.np
The
.id #elif
directive must be inside an
.id #if
preprocessing group and before the
.id #else
directive if present.
:MSGSYM. ERR_MISPLACED_ELSE
:MSGTXT. Misplaced #else directive
:MSGJTXT. #else媅帡柦椷偺埵抲偑娫堘偭偰偄傑偡
.np
The
.id #else
directive must be inside an
.id #if
preprocessing group and follow all
.id #elif
directives if present.
:MSGSYM. ERR_MISPLACED_ENDIF
:MSGTXT. Misplaced #endif directive
:MSGJTXT. #endif媅帡柦椷偺埵抲偑娫堘偭偰偄傑偡
.np
A
preprocessing directive has been found without a matching
.id #if
directive.
You either have an extra
or you are missing an
.id #if
directive earlier in the file.
:MSGSYM. ERR_ONLY_1_DEFAULT
:MSGTXT. Only 1 DEFAULT per switch allowed
:MSGJTXT. 1偮偺switch暥偵偼1偮偺DEFAULT偩偗偑擣傔傜傟傑偡
.np
You cannot have more than one
.kw default
label in a
.kw switch
statement.
:MSGSYM. ERR_EXPECTING_BUT_FOUND
:MSGTXT. Expecting '%s' but found '%s'
:MSGJTXT. '%s'偑偁傞偼偢偱偡偑丆'%s'偑偁傝傑偟偨
.np
A syntax error has been detected.
The tokens displayed in the message should help you to determine the problem.
:MSGSYM. ERR_TYPE_MISMATCH
:MSGTXT. Type mismatch
:MSGJTXT. 宆偑堦抳偟傑偣傫
.np
For pointer subtraction, both pointers must point to the same type.
For other operators, both expressions must be assignment compatible.
:MSGSYM. ERR_UNDECLARED_SYM
:MSGTXT. Symbol '%s' has not been declared
:MSGJTXT. 僔儞儃儖'%s'偑愰尵偝傟傑偣傫偱偟偨
.np
The compiler has found a symbol which has not been previously declared.
The symbol may be spelled differently than the declaration, or you may
need to
.id #include
a header file that contains the declaration.
:MSGSYM. ERR_NOT_A_FUNCTION
:MSGTXT. Expression is not a function
:MSGJTXT. 幃偑娭悢偱偼偁傝傑偣傫
.np
The compiler has found an expression that looks like a function call, but
it is not defined as a function.
:MSGSYM. ERR_CANNOT_MODIFY_CONST
:MSGTXT. Constant variable cannot be modified
:MSGJTXT. 掕悢曄悢偼曄峏偱偒傑偣傫
.np
An expression or statement has been found which modifies a variable which
has been declared with the
.kw const
keyword.
:MSGSYM. ERR_MUST_BE_LVALUE
:MSGTXT. Left operand must be an 'lvalue'
:MSGJTXT. 嵍曈偼'嵍曈抣'偱側偗傟偽側傝傑偣傫
.np
The operand on the left side of an "=" sign must be a variable or memory
location which can have a value assigned to it.
:MSGSYM. ERR_SYM_ALREADY_DEFINED_AS_VAR
:MSGTXT. '%s' is already defined as a variable
:MSGJTXT. '%s'偼婛偵曄悢偲偟偰掕媊偝傟偰偄傑偡
.np
You are trying to declare a function with the same name as a previously
declared variable.
:MSGSYM. ERR_EXPECTING_ID
:MSGTXT. Expecting identifier
:MSGJTXT. 幆暿巕偑偁傞傋偒偱偡
.np
The token following "->" and "." operators must be the name of an
identifier which appears in the struct or union identified by the
operand preceding the "->" and "." operators.
:MSGSYM. ERR_LABEL_ALREADY_DEFINED
:MSGTXT. Label '%s' already defined
:MSGJTXT. 儔儀儖'%s'偼婛偵掕媊偝傟偰偄傑偡
.np
All labels within a function must be unique.
:MSGSYM. ERR_UNDEFINED_LABEL
:MSGTXT. Label '%s' not defined in function
:MSGJTXT. 儔儀儖'%s'偼娭悢偺拞偱掕媊偝傟偰偄傑偣傫
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -