...
Code Block |
---|
const int max = 15;
int a[max]; /* invalid declaration outside of a function */
const int *p;
/* a const-qualified object can have its address taken */
p = &max;
|
Wiki Markup |
---|
{{const}}\-qualified objects are likely to incur some runtime overhead \[[Saks 2001b|AA. Bibliography#Saks 02]\]. Most C compilers, for example, allocate memory for {{const}}\-qualified objects. {{const}}\-qualified objects declared inside a function body can have automatic storage duration. If so, the compiler will allocate storage for the object, and it will be on the stack. As a result, this storage will need to be allocated and initialized each time the containing function is invoked. |
...
Tool | Version | Checker | Description |
---|
| | | Section |
---|
Fully Implemented |
|
| | | Section |
---|
Wiki Markup |
---|
Could detect violations of this recommendation, merely by searching for the use of 'magic numbers' and magic strings in the code itself. That is, any number (besides a few canonical numbers: \-1, 0, 1, 2) that appears in the code anywhere besides being assigned to a variable is a magic number, and should instead be assigned to a const integer, enum, or macro. Likewise any string literal (except "" and individual characters) that appears in the code anywhere besides being assigned to a {{char\*}} or {{char\[\]}} is a magic string.\\ |
|
|
| | | Section |
---|
Fully Implementedcould detect violations of this recommendation, merely by searching for the use of 'magic numbers' and magic strings in the code itself. That is, any number (besides a few canonical numbers: -1, 0, 1, 2) that appears in the code anywhere besides being assigned to a variable is a magic number, and should instead be assigned to a const integer, enum, or macro. Likewise any string literal (except "" and individual characters) that appears in the code anywhere besides being assigned to a char* or char[] is a magic string. |
|
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this rule on the CERT website.
...