mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 18:22:07 +00:00
Introduce ARRAY_SIZE macro
Checked by `checkpatch`, and you know what? Not a bad thing See https://github.com/gbdev/rgbds/pull/931#discussion_r738856724
This commit is contained in:
@@ -89,4 +89,8 @@
|
|||||||
#define STR(x) #x
|
#define STR(x) #x
|
||||||
#define EXPAND_AND_STR(x) STR(x)
|
#define EXPAND_AND_STR(x) STR(x)
|
||||||
|
|
||||||
|
// Obtaining the size of an array; `arr` must be an expression, not a type!
|
||||||
|
// (Having two instances of `arr` is OK because the contents of `sizeof` are not evaluated.)
|
||||||
|
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof *(arr))
|
||||||
|
|
||||||
#endif /* HELPERS_H */
|
#endif /* HELPERS_H */
|
||||||
|
|||||||
@@ -618,7 +618,7 @@ void lexer_Init(void)
|
|||||||
*/
|
*/
|
||||||
uint16_t usedNodes = 1;
|
uint16_t usedNodes = 1;
|
||||||
|
|
||||||
for (size_t i = 0; i < sizeof(keywords) / sizeof(*keywords); i++) {
|
for (size_t i = 0; i < ARRAY_SIZE(keywords); i++) {
|
||||||
uint16_t nodeID = 0;
|
uint16_t nodeID = 0;
|
||||||
|
|
||||||
/* Walk the dictionary, creating intermediate nodes for the keyword */
|
/* Walk the dictionary, creating intermediate nodes for the keyword */
|
||||||
@@ -645,8 +645,7 @@ void lexer_Init(void)
|
|||||||
|
|
||||||
#ifdef PRINT_NODE_COUNT /* For the maintainer to check how many nodes are needed */
|
#ifdef PRINT_NODE_COUNT /* For the maintainer to check how many nodes are needed */
|
||||||
printf("Lexer keyword dictionary: %zu keywords in %u nodes (pool size %zu)\n",
|
printf("Lexer keyword dictionary: %zu keywords in %u nodes (pool size %zu)\n",
|
||||||
sizeof(keywords) / sizeof(*keywords), usedNodes,
|
ARRAY_SIZE(keywords), usedNodes, ARRAY_SIZE(keywordDict));
|
||||||
sizeof(keywordDict) / sizeof(*keywordDict));
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user