Mudanças entre as edições de "Avoid encodings: Hungarian Notation"
De Basef
Linha 8: | Linha 8: | ||
* '''usName''' : variable represents an unsafe string ("us"), which needs to be "sanitized" before it is used (e.g. see code injection and cross-site scripting for examples of attacks that can be caused by using raw user input) | * '''usName''' : variable represents an unsafe string ("us"), which needs to be "sanitized" before it is used (e.g. see code injection and cross-site scripting for examples of attacks that can be caused by using raw user input) | ||
* '''szName''' : variable is a zero-terminated string ("sz"); this was one of Simonyi's original suggested prefixes. | * '''szName''' : variable is a zero-terminated string ("sz"); this was one of Simonyi's original suggested prefixes. | ||
+ | * '''pX''' is a pointer to another type X; this contains very little semantic information. | ||
+ | * '''d''' is a prefix meaning difference between two values; for instance, dY might represent a distance along the Y-axis of a graph, while a variable just called y might be an absolute position. This is entirely semantic in nature. | ||
+ | * '''sz''' is a null- or zero-terminated string. In C, this contains some semantic information because it is not clear whether a variable of type char* is a pointer to a single character, an array of characters or a zero-terminated string. | ||
+ | * '''w''' marks a variable that is a word. This contains essentially no semantic information at all, and would probably be considered Systems Hungarian. | ||
+ | * '''b''' marks a byte, which in contrast to w might have semantic information, because in C the only byte-sized data type is the char, so these are sometimes used to hold numeric values. This prefix might clear ambiguity between whether the variable is holding a value that should be treated as a character or a number. | ||
[[Category: Clean Code]] | [[Category: Clean Code]] |
Edição das 12h12min de 27 de janeiro de 2020
Examples of Hungarian Notation:
- lAccountNum : variable is a long integer ("l");
- arru8NumberList : variable is an array of unsigned 8-bit integers ("arru8");
- bReadLine(bPort,&arru8NumberList) : function with a byte-value return code.
- strName : Variable represents a string ("str") containing the name, but does not specify how that string is implemented.
- rwPosition : variable represents a row ("rw");
- usName : variable represents an unsafe string ("us"), which needs to be "sanitized" before it is used (e.g. see code injection and cross-site scripting for examples of attacks that can be caused by using raw user input)
- szName : variable is a zero-terminated string ("sz"); this was one of Simonyi's original suggested prefixes.
- pX is a pointer to another type X; this contains very little semantic information.
- d is a prefix meaning difference between two values; for instance, dY might represent a distance along the Y-axis of a graph, while a variable just called y might be an absolute position. This is entirely semantic in nature.
- sz is a null- or zero-terminated string. In C, this contains some semantic information because it is not clear whether a variable of type char* is a pointer to a single character, an array of characters or a zero-terminated string.
- w marks a variable that is a word. This contains essentially no semantic information at all, and would probably be considered Systems Hungarian.
- b marks a byte, which in contrast to w might have semantic information, because in C the only byte-sized data type is the char, so these are sometimes used to hold numeric values. This prefix might clear ambiguity between whether the variable is holding a value that should be treated as a character or a number.