Как обозначить вложенные массивы, структуры или классы венгерским способом?
-
21-08-2019 - |
Вопрос
у меня есть массив, который содержит другой массив
Стал бы я обозначать это таким образом?
псевдокод:
rgrgTest = newArray(2)
Что делать, если массив содержит, т. е.структура?
псевдокод:
rggrTest = newArray(2).newStruct()
Или таким образом, т. е.если я хочу классифицировать типы данных структуры?
псевдокод:
rggrlstlTest = newArray(2).newStruct(int id, str desc, int value)
Решение
"Правильный" способ диктуется вашим стандартом кодирования и списком префиксов.
Порядок префиксов обычно представляет собой порядок, в котором то, что они представляют, было бы прочитано на вашем родном языке.
Используйте однобуквенные префиксы (или одну букву + цифры для целых типов), чтобы имена не становились слишком неуправляемыми, поэтому, возможно, 'u8' для 1-байтового целого числа без знака, 'a' для массива, 'r' для структуры (как в "record").
Не включайте элементы структуры в префикс;это просто становится слишком громоздким.
Итак, чтобы привести несколько примеров:
au8My1DArray[] // A 1-dimensional array of unsigned 1-byte integers
aau8My2dArray[][] // A 2-dimensionnal array of unsigned 1-byte integers
arMyArray[] // A 1-dimensional array of structs
Примечание:Это системная венгерская нотация, и она, похоже, очень непопулярна у пользователей Stack Overflow, но не пугайтесь!Это все еще распространено во встроенном программном обеспечении.
Смотрите также Статья в Википедии по этому вопросу.