![]() |
Glossary | |
| aggregate type | An array type or a structure type. | |
| alignment | The requirement that objects of a particular type be located on storage boundaries with addresses that are particular multiples of a byte address. | |
| apparent | Constant, Definite, Apparent, Suspicious and Possible are terms describing five particular categories of message which are the outcome of dataflow analysis. More ... | |
| argument | An expression in the comma-separated list bounded by parentheses supplied in a function call or when invoking a function-like macro. Also known as an "actual argument" or "actual parameter". | |
| arithmetic operator | One of the following: (Unary) ++ -- + - (Binary) * / % + -. Note also the corresponding set of compound assignment operators. More ... |
|
| arithmetic type | An integral or floating type. | |
| array subscript operator | The sequence [ ] is referred to as the "array subscript operator". More ... |
|
| array type | A contiguously allocated non-empty set of objects of a particular object type. | |
| assigning conversion | An implicit type conversion which occurs for the RHS operand of an assignment operator, initializer in a declaration statement, return expression or a function call argument. | |
| assignment operator | The simple assignment operator ( = ) or one of the compound assignment operators. More ... |
|
| associativity | Sometimes referred to as "grouping". Along with precedence, associativity is a property of an operator which determines the order in which successive operators within an expression are evaluated. More ... | |
| automatic | See storage duration | |
| balancing | A word commonly used as a synonym for the ISO:C set of rules known as the usual arithmetic conversions | |
| basic type | The type char, the signed and unsigned integer types, and the floating types. More ... |
|
| bitwise operator | One of the following: << >> & ^ | ~. Note also the corresponding set of compound assignment operators. More ... |
|
| block | A section of executable code bounded by braces { }, otherwise known as a compound statement. The body of a function is an example of a block. | |
| block scope | The range of visibility of an identifier declared inside a function. More ... | |
| Boolean operator | A relational, equality or logical operator. These are the operators which return a result of type int and a value of 0 or 1. |
|
| Boolean type | A Boolean type (_Bool) was only introduced into C in the ISO:C99 version of the language. |
|
| byte | The unit of storage large enough to hold any member of the basic character set of the execution environment. A byte is composed of a contiguous sequence of bits, the number of which is implementation-defined. | |
| byte-order | The order of bytes in a multi-byte type. Two common byte-orders are big-endian and little-endian. | |
| character constant | A constant consisting of one or more characters enclosed in single quote marks. More ... | |
| character set | A finite set of characters (symbols and control codes), and the sequence and values of these characters. More ... | |
| complex expression | A term used in MISRA-C to describe an expression whose value is the result of certain arithmetic and bitwise operators. More ... | |
| composite expression | A term used to describe an expression whose value is the result of one of a specific range of operators. More ... | |
| compound assignment operator | One of the following operators: *= /= %= += -= <<= >>= &= ^= |= More ... |
|
| compound statement | A section of executable code bounded by braces { }, otherwise referred to as a block. The body of a function is an example of a compound statement. |
|
| conditional inclusion | The conditional inclusion preprocessing directives (#if, #ifdef, #ifndef, #elif, #else and #endif) are used to control whether subsequent sections of code should be 'included' or 'skipped'. | |
| conditional operator | The ? : operator, sometimes referred to as the "ternary" operator. More ... | |
| conforming implementation | An implementation that will accept any strictly conforming program. A conforming implementation may have extensions (including additional library functions), provided they do not alter the behavior of any strictly conforming program. | |
| conforming program | A program that conforms to the requirements of a conforming implementation but not necessarily every conforming implementation. A conforming program may depend upon nonportable features of a conforming implementation. | |
| constant | Either a floating constant, an integer constant, an enumeration constant or a character constant. More ... | |
| constant expression | An expression that evaluates to a constant value at compile time. More ... | |
| constraint error | A syntactic or semantic restriction on the way in which the language can be used. | |
| controlling expression | The expression in an if, switch, while or do statement; or the second expression in a for statement. |
|
| conversion specifier | An element of the format string used in input and output functions of the standard library. For example, %d, %E, %s are used to specify integer, floating and character data respectively. | |
| dataflow analysis | A static analysis technique which analyzes the control flow graph and the status and potential value of objects at runtime. More ... | |
| declaration | A specification of the interpretation to be given to an identifier. When used in the context of an object or function, the word does not necessarily imply reservation of storage space and is often used in contradistinction to the term "definition". | |
| default argument promotion | A mechanism whereby arguments in a function call may be automatically promoted. This occurs when no function prototype is visible or when the argument corresponds to a parameter in the function prototype which is only specified by means of a variable argument list. More ... | |
| definite | Constant, Definite, Apparent, Suspicious and Possible are terms describing five particular categories of message which are the outcome of dataflow analysis. More ... | |
| definition | A declaration that causes storage to be reserved for an object or function. | |
| do-while-zero | A 'do-while' statement with a controlling expression which is constant and evaluates to zero. The statements within the loop are executed only once. The construct is commonly used as a way of defining a macro which encapsulates a block of code and which can be used with a terminating semicolon just like a function call. |
|
| effectively Boolean | An expression derived from a Boolean operator or an object declared as Boolean through external enforcement. More ... | |
| environmental limits | A set of minimum requirements to which a conforming implementation must comply. For example, an object of type int must be able to store values AT LEAST in the range -32767 to +32767; the implementation must be able to process AT LEAST 257 case labels in a switch statement. | |
| equality operator | One of the following: == !=. More ... |
|
| equivalent types | A term used within the QAC environment to describe 2 signed, 2 unsigned or 2 floating types which are implemented identically. For example signed short and signed int are equivalent types in many implementations. |
|
| escape sequence | An alternative way of representing a character (usually a control character) in a character constant or string literal. For example: '\n', '\012', '\x0D'. |
|
| essential type | An alternative way of describing the essential nature of an expression of arithmetic type. More ... | |
| exception | An abnormal situation that cannot be handled at runtime and for which the behavior is not specified in the ISO:C standard. | |
| external linkage | An attribute of an object or function which allows it to be accessed from more than one translation unit. More ... | |
| file scope | The range of visibility of an identifier declared outside a function or a function prototype declaration. More ... | |
| floating constant | A constant of type float, double or long double. More ... |
|
| floating type | float, double, or long double |
|
| formal parameter | A function parameter as defined in the prototype. | |
| freestanding environment | An environment in which a C program is executed without assuming any benefits of an operating system. A freestanding implementation need only provide the following Standard Library header files: <float.h>, <limits.h>, <stdarg.h>, and <stddef.h>. | |
| function designator | An expression that has function type; for example, a function identifier or the result of dereferencing a function pointer. | |
| function prototype | A function declaration that declares the types of the parameters; sometimes referred to as a new style declaration. More ... | |
| function prototype scope | The range of visibility associated with an identifier in a function prototype declaration which is not part of a function definition. More ... | |
| function scope | The range of visibility associated with a label. More ... | |
| function specifier | The keyword inline defined in the ISO:C99 version of the language. |
|
| function-like macro | A macro that is defined with a parenthesized parameter list consisting of zero or more parameters. See object-like macro. | |
| global | A word commonly used to describe an object or function defined with external linkage | |
| hard error | An analysis problem which generates a Level 9 message. Level 9 messages cannot be suppressed. They identify configuration problems or syntax errors in the code. | |
| hosted environment | An environment for C program execution which provides access to the full set of Standard Library header files and the corresponding definitions of global identifiers. | |
| identifier | The name associated with an object, function, label, tag, structure/union member, enumeration constant or typedef, Macro names and macro parameters are not described as identifiers, because they are replaced with other text before the semantic phase of program translation takes place (where identifiers are significant). |
|
| implementation | The compiler, linker and associated tools which generate executable code. The implementation also provides runtime support in the form of initialization code and standard libraries. | |
| implementation-defined | Behavior for a correct program construct and correct data which depends on the characteristics of the implementation. The ISO:C standard requires that such behavior should be documented. More ... | |
| include file | A source file that is incorporated into translation units using the #include preprocessing directive. |
|
| incomplete type | A type which lacks information required to determine its size; for example an array type in which the array dimension is missing or a structure/union type for which members are not specified. | |
| initialization | An object may be either explicitly initialized, implicitly initialized or uninitialized. See storage duration | |
| integer constant | A constant of integer type with decimal, octal or hexadecimal form. More ... | |
| integral constant expression | An expression of integer type that evaluates to a constant value at compile time. More ... | |
| integral promotion | A mechanism in the ISO:C language whereby, during many operations, any operand of a small integer type is automatically converted to type int or unsigned int. More ... |
|
| integral type | A signed integer type, unsigned integer type, char type or an enumeration type. More ... |
|
| internal linkage | An attribute of an object which allows it to be accessed from more than one function within its own translation unit. More ... | |
| invariant | An expression which is the result of a Boolean operator and which evaluates to the same 'true' or 'false' value under all conditions. | |
| ISO:C Standard | The International Standard for the C language. More ... | |
| ISO:C90 | The original version of the International Standard for the C language published in 1990. More ... | |
| ISO:C90 Normative Addendum 1 | An amendment to the ISO:C90 version of the C language which addresses issues of internationalization. More ... | |
| ISO:C99 | The revised version of the International Standard for the C language published in 1999. More ... | |
| jump statement | A statement that causes an unconditional jump to another place, i.e. a goto, continue, break or return statement. |
|
| K&R | Brian Kernighan and Dennis Ritchie were primary contributors to the development of the C language. Until superseded by the ISO:C Standard, their book, "The C Programming Language", represented the de-facto C standard and this version of the language is now commonly referred to as K&R C. | |
| keyword | One of the specific terms which form part of C language syntax. More ... | |
| lifetime | The lifetime of an object ends when it goes out of scope. [ISO C++ Language 3.3] |
|
| linkage | A property of an object or a function which determines where it may be accessed. Objects and functions may have internal or external linkage. Objects may also be defined with no linkage. More ... | |
| literal | The term used in the ISO:C++ standard to describe what is referred to as a constant in the ISO:C standard. | |
| locale specific behavior | Behavior that depends on local conventions affected by nationality, culture and language; for example, the character used by the standard library to separate the integer and fractional parts of a floating point number. | |
| logical operator | One of the following: && || !. Note also the corresponding compound assignment operators. More ... |
|
| loop increment expression | The last of the three expressions contained in parentheses in a for statement. |
|
| lvalue | An expression (with an object type or an incomplete type other than void) that designates an object. An lvalue may be referred to by an identifier or it can be constructed as the result of an indirection operator ('*'), an array subscript operator ('[ ]') or one of the structure/union member operators ('.'or '->'). |
|
| MISRA-C | "Guidelines for the use of the C language in critical systems". A coding standard published by the Motor Industry Software Reliability Association which has been widely adopted in many industries throughout the world. See http://misra-c.com/ | |
| modifiable lvalue | An lvalue that does not have array type, incomplete type, const-qualified type or, if a struct/union, any member with const-qualified type. | |
| name space | The mechanism whereby the same identifier can be used at the same point in the program to refer to more than one entity. For example the same identifier can be used within the same scope to identify both an object and a structure tag. More ... | |
| new style | "New style" refers to the syntax used when declaring or defining a function with a prototype interface. More ... | |
| non-scalar type | An object type which is not a scalar type. For example an aggregate type or a union type | |
| null pointer | The result of an assignment of a null pointer constant to a pointer. It is guaranteed to compare unequal to a pointer to any object or function. | |
| null pointer constant | Defined as an integral constant expression with value "0", possibly cast to type void *. |
|
| null statement | A statement that consists only of a semicolon. | |
| object | A region of storage in the execution environment which can represent values. Except for bit-fields, objects are composed of contiguous sequences of one or more bytes. Notice that an object is not necessarily a variable. The term object includes constant objects whose value cannot be modified at runtime. | |
| object-like macro | A macro which is defined without following parentheses and without a list of parameters. See function-like macro. | |
| old style | "Old style" refers to the K&R syntax used in the declaration and definition of a function. More ... | |
| operand | An entity on which an operator acts. | |
| operator | An operator specifies an operation to be performed (an evaluation) that yields a value, or yields a designator, or produces a side effect, or a combination thereof. More ... | |
| order of evaluation | The sequence in which operands are evaluated in an expression. Note that this is distinct from the order in which operators are processed which is determined by the precedence and associativity of the operators. More ... | |
| ordinary identifier | An identifier which refers to an object, a function, a typedef, or an enumerated constant. More ... | |
| parameter | An object declared as part of a function declaration or definition that acquires a value on entry to the function, or an identifier from the comma-separated list bounded by the parentheses immediately following the macro name in a function like macro definition. Also known as "formal parameter". | |
| pointer type | Derived from an object type, function type or incomplete type and describes an object whose value is a reference to an entity of that type. | |
| possible | Constant, Definite, Apparent, Suspicious and Possible are terms describing five particular categories of message which are the outcome of dataflow analysis. More ... | |
| postfix operator | A unary operator that is placed after its operand; for example: . -> [] ++ -- (). (Note that the last example (the pair of parentheses) refers to the function call operator) |
|
| precedence | Precedence and associativity determine the order in which operators are evaluated in an expression. More ... | |
| prefix operator | A unary operator that is placed before its operand; for example: & * + - ~ ! sizeof ++ --. |
|
| preprocessing directive | An instruction to the preprocessor consisting of a source code line beginning with a #. The actions of the preprocessor occur in several stages described in the ISO:C standard under the heading of translation phases. |
|
| primary expression | An identifier, a constant, a string literal or a parenthesized expression. | |
| ptrdiff_t | A typedef which defines the type which results from subtracting two pointers. This type is implementation defined but is always a signed integral type. It is defined in the standard header file <stddef.h>. |
|
| punctuator | One of the following tokens: [ ] ( ) { } * , : = ; ... # |
|
| QA C Standard Library header files | A set of header files provided with QA C which conform to the definition of the Standard Library header files. | |
| rank | A term used in ISO:C99 to describe the implicit ordering of types. More ... | |
| relational operator | One of the following: < <= >= >. More ... |
|
| replacement list | The list of tokens in a #define directive which specify what is to be substituted when the macro is used. | |
| reserved identifier | A class of identifier reserved for use in the standard library or by the implementation. If a program declares or defines an identifier with the same name as an identifier reserved in that context, (with some specific exceptions) the behavior is undefined. | |
| rvalue | The value of an expression. A value that may or may not have a memory location and so cannot necessarily be used where an lvalue is required. | |
| scalar type | A basic type, enumeration type or pointer type | |
| scope | The region of a translation unit within which an identifier is visible. More ... | |
| sequence point | A point in the execution of a program where the state of the program is fully defined. More ... | |
| shift operator | One of the following: << >>. Note also the corresponding set of compound assignment operators. More ... |
|
| side effects | An action that changes the execution environment. Accessing a volatile object, modifying an object, modifying a file or calling a function that does any of those operations are all side effects. More ... | |
| signed integer type | signed char, short, int, long and long long |
|
| signedness | The attribute of an integer type whereby it is either "signed" or "unsigned". | |
| size_t | A typedef which defines the type which results from use of the sizeof operator. This type is implementation defined but is always an unsigned integral type. It is defined in the standard header files <stddef.h>, <stdlib.h>, <stdio.h>, <string.h> and <time.h>. |
|
| small integer type | A collective term used in the QAC environment to describe the following types: char, short or bit-field and any of their signed or unsigned varieties, or an enumeration type. These are the specific types which are subject to integral promotion |
|
| Standard Library header files | The set of library header files which are defined as part of the ISO:C Standard. More ... | |
| standard type | A term used within QAC to distinguish the actual type of an expression (as defined in the ISO:C Standard) from its essential type (a hypothetical concept). | |
| static | A keyword classified as a storage-class specifier. Its meaning is often confused with linkage. More ... | |
| storage duration | A property of objects. An object may have either "static storage duration" or "automatic storage duration". More ... | |
| storage-class specifier | The C language defines five storage-class specifiers: static, extern, auto, register and typedef (although typedef is an anomaly and is only classified this way for syntactic convenience). The application of a storage-class specifier to the declaration of an object or function may affect its linkage, its storage duration and its initialization. More ... |
|
| strictly conforming | A strictly conforming program only uses language features which comply with the ISO:C language standard. It does not produce output dependent on any unspecified, undefined, or implementation-defined behavior, and does not exceed any minimum environmental limit. | |
| string literal | A sequence of zero or more characters enclosed in double quote marks. More ... | |
| structure member operator | One of: . or ->. More ... |
|
| suspicious | Constant, Definite, Apparent, Suspicious and Possible are terms describing five particular categories of message which are the outcome of dataflow analysis. More ... | |
| tag | The name used to identify a struct, union or enum type. |
|
| tentative definition | The file scope declaration of an object with no initializer and with no storage-class specifier or with the storage class specifier static. The ISO:C standard says that if a translation unit contains one or more tentative definitions for an identifier, and the translation unit contains no external definition for that identifier, then the behavior is exactly as if the translation unit contains a file scope declaration of that identifier with the composite type as of the end of the translation unit, with an initializer equal to 0. | |
| ternary operator | Usually referred to as the conditional operator: ? :. More ... |
|
| translation phases | The process of translating source code into an executable program is described by the ISO:C standard in the context of 8 separate phases. The implementation must behave as if these separate phases occur, even though in practice several phases may be folded together. | |
| translation unit | A source file together with all headers and source files included via the preprocessing directive #include, but excluding any source lines skipped by any of the conditional inclusion preprocessing directives. |
|
| type qualifier | Two type qualifiers are available: const and volatile. More ... |
|
| type specifier | A sequence of keywords and other type definitions used to construct a type. The basic types, typedef'd type names, structure and union specifiers and enumeration specifiers are all type specifiers. More ... | |
| unary operator | An operator which acts on a single operand. One of the following: ! ~ ++ -- + - * & (type) sizeof. |
|
| undefined behavior | The ISO:C standard does not define the behavior of all constructs in all circumstances, even when the code conforms to all relevant syntax and constraint requirements. Unless specifically described as implementation-defined or unspecified behavior, the resulting behavior is classified as undefined and therefore completely unpredictable. More .... | |
| underlying type | An alternative way of describing the intrinsic nature of an expression of arithmetic type. More .... See also essential type | |
| unsigned integer type | unsigned char, unsigned short, unsigned int, unsigned long and unsigned long long |
|
| unspecified behavior | Describes aspects of the C language which may be implemented in different ways which are not necessarily documented. More ... | |
| usual arithmetic conversions | A set of rules for converting 2 operands to a common type. Sometimes referred to as balancing. More ... | |
| variable | A term widely used as a synonym for object. Notice that objects can sometimes be const qualified in which case the term variable is rather inappropriate. |
|
| wchar_t | A typedef which defines the type used to represent the values of the largest extended character set specified among the supported locales. This type is implementation defined and is always an integral type. It is defined in the standard header files <stddef.h> and <stdlib.h>. |
|
| white space | A sequence of one or more of the following: space, new-line, horizontal tab, vertical tab or form-feed character. A comment is also considered as equivalent to white space. | |
| wide character constant | A character constant prefixed with the letter L; for example, L'ab'. The constant is of type wchar_t. |
|
| wide string literal | A string literal prefixed with the letter L; for example, L"hello". The elements of the array are of type wchar_t. |
![]() | ||
| QA·C Source Code Analyser 8.1.2
© 2013 Programming Research. www.programmingresearch.com | Personality Groups | Glossary | Message Index | Contents |