Главная - Литература

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 [75] 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294

Часть

ПЕРЕМЕННЫЕ

Глава 10. Общие принципы использования переменных Глава 11. Сила имен переменных Глава 12. Основные типы данных Глава 13. Нестандартные типы данных



ГЛАВА 10

Содержание

http: cc2e,com/1085

10.1. Что вы знаете о данных?

10.2. Грамотное объявление переменных

10.3. Принципы инициализации переменных

10.4. Область видимости

10.5. Персистентность

10.6. Время связывания

10.7. Связь между типами данных и управляющими структурами

10.8. Единственность цели каждой переменной

Связанные темы

Именование переменных: глава 11

Фундаментальные типы данных: глава 12

Редкие типы данных: глава 13

Размещение объявлений данных: одноименный подраздел раздела 31.5

Документирование переменных: подраздел «Комментирование объявлений данных» раздела 32.5

Если при конструировании приходится заполнять небольшие пробелы в требованиях и архитектуре, это нормально и даже желательно. Проектирование программы вплоть до микроскопических деталей было бы неэффективным. В этой главе рассматривается один из низкоуровневых вопросов конструирования - использование переменных.

Эта глава будет особенно полезна опытным программистам. Довольно часто мы применяем рискованные подходы, не имея полного представления об альтернативах, а после используем их в силу привычки. Особый интерес для опытных программистов могут представлять разделы 10.6 и 10.8, посвященные соответствен-



но времени связывания и использованию переменных только с одной целью. Если вы не знаете, насколько «опытным» программистом вы являетесь, пройдите <Тест на знание типов данных» в разделе 10.1 и узнайте.

В этой главе я буду понимать под «переменными» и объекты, и встроенные типы данных, такие как целые числа и массивы. «Типами данных» я, как правило, буду называть встроенные типы данных, а просто «данными» - и встроенные чипы данных, и объекты.

10.1. Что вы знаете о данных?

Создавая данные, вы должны в первую очередь понять, какие именно данные вам нужны. Обширные знания о разных типах данных - важнейший компонент в инструментарии любого программиста. Введения в типы данных в этой книге вы не найдете, но «Тест на знание данных» поможет вам определить, сколько еще вам нужно о них узнать.

Тест на знание данных

Поставьте себе 1 балл за каждый термин, который вам известен. Если термин кажется знакомым, но вы не уверены в его значении, поставьте себе 0,5 балла. Выполнив гест, просуммируйте баллы и оцените результат по приведенному ниже описанию.

abstract data type literal (литерал)

(абстрактный тип данных)

array (массив)

bitmap (растровое изображение)

boolean variable (булева переменная)

B-tree (В-дерево)

character variable (символьная переменная)

container class (класс-контейнер)

double precision (двойная точность)

elongated stream (удлиненный поток)

enumerated type (перечисление)

floating point (число с плавающей точкой)

heap (куча)

index (индекс)

integer (целое число)

linked list (связанный список)

named constant (именованная константа)

local variable (локальная переменная)

lookup table (таблица поиска)

member data (данные-члены)

pointer (указатель)

private (закрытый)

retroactive synapse (ретроактивный синапс)

referential integrity (целостность ссылочных данных)

stack (стек)

string (строка)

structured variable (структурная переменная)

tree (дерево)

typedef (синоним типа)

union (объединение)

value chain (цепочка начисления стоимости)

variant (универсальный тип)

Общее число баллов



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 [75] 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294



0.0071