Что самое странное кодировало правило стандарта, что Вы были вынуждены следовать? [закрытый]

173
задан 6 revs 23 May 2017 в 11:54
поделиться

107 ответов

Я ненависть это, когда использование нескольких возвратов запрещается.

434
ответ дан Simon Johnson 23 November 2019 в 20:32
поделиться

Выполнение всей базы данных запрашивает с помощью хранимых процедур в SQL-сервере 2000. От сложной мультитаблицы запрашивает к простым как:

select id, name from people

аргументы в пользу процедур были:

  • Производительность
  • безопасность
  • Пригодность для обслуживания

я знаю, что тема процедуры довольно спорна, поэтому не стесняйтесь выигрывать мой ответ негативно;)

34
ответ дан 3 revs 23 November 2019 в 20:32
поделиться

Венгерская запись в целом.

45
ответ дан vfilby 23 November 2019 в 20:32
поделиться

У меня было много из глупый правила, но не много, что я считал совершенно странным.

sillyiest был на задании НАСА, я работал назад в начале 90-х. Это было огромным заданием с хорошо более чем 100 разработчиками на нем. Опытные разработчики, которые записали стандарты кодирования, решили, что каждый исходный файл должен начаться с четырех акронимов буквы, и первая буква должна была обозначать группу, которая была ответственна за файл. Это было, вероятно, прекрасной идеей для старого ФОРТРАНА 77 проектов, к которым они привыкли.

Однако это было проект Ada с хорошей hierarchal структурой библиотеки, таким образом, он не имел никакого смысла вообще. Каждый каталог был полон файлов, запускающихся с той же буквы, сопровождаемой еще 3 буквами ерунды, подчеркиванием, и затем частью имени файла, которое имело значение. Все пакеты Ada должны были запуститься с этой той же бородавки с пятью символами. Пунктам "использования" Ada не разрешили ни одного (возможно хорошая вещь при нормальных обстоятельствах), так, чтобы предназначенный любая ссылка на любой идентификатор, который не был локален для того исходного файла также , должна была включать эту бесполезную бородавку. Вероятно, должно было быть восстание по этому, но весь проект был укомплектован младшими программистами и только что из колледжа новые наймы (самостоятельно являющийся последним).

А типичный оператор присваивания (уже подробный в Ada) закончил бы тем, что выглядел примерно так:

NABC_The_Package_Name.X := NABC_The_Package_Name.X + 
  CXYZ_Some_Other_Package_Name.Delta_X;

, К счастью, они были, по крайней мере, просвещены достаточно, чтобы позволить нам больше чем 80 столбцов! Однако, бородавку средства ненавидели достаточно, что это стало шаблонным кодом во главе общих исходных файлов для использования Ada, "переименовывает" для избавлений от бородавки. Был бы, каждый переименовывает для каждого, импортировал ("withed") пакет. Как это:

package Package_Name renames NABC_Package_Name;
package Some_Other_Package_Name renames CXYZ_Some_Other_Package_Name;
--// Repeated in this vein for an average of 10 lines or so

то, Что более творческое среди нас взяло к выполнению, пробовало к использование бородавка для создания acutally разумный (или глупый) имя пакета. (Я знаю то, что Вы думаете, но ругательства не были позволены и позор Вам! Это отвратительно). Например, я был в группа кода Common, и я должен был сделать пакет для взаимодействия через интерфейс с группа W orkstation. После мозгового штурма с парнем Рабочей станции мы решили назвать наши пакеты так, чтобы кто-то нуждающийся в обоих должен был записать:

with CANT_Interface_Package;
with WONT_Interface_Package;
43
ответ дан 4 revs, 2 users 96% 23 November 2019 в 20:32
поделиться

Назад в мои дни C++ нам не разрешили использовать ==,> =, < =, & & и т.д. были макросы для этого...

if (bob EQ 7 AND alice LEQ 10)
{
   // blah
}

это должно было, очевидно, иметь дело со "старым случайным присвоением в условной ошибке", однако у нас также было правило, "помещает константы перед переменными", таким образом

if (NULL EQ ptr); //ok
if (ptr EQ NULL); //not ok

Просто помнил, самый простой стандарт кодирования, который я когда-либо слышал, был "Кодом записи, как будто следующий специалист по обслуживанию является порочным психопатом, который знает, где Вы живете".

53
ответ дан 4 revs, 3 users 76% 23 November 2019 в 20:32
поделиться

Используя универсальные пронумерованные имена идентификатора

На моей текущей работе у нас есть два правила, которые являются действительно средними:

Правило 1: Каждый раз, когда мы создаем новое поле в таблице базы данных, мы должны добавить дополнительные резервные поля для будущего использования. Эти резервные поля пронумерованы (потому что никто не знает, какие данные они будут содержать однажды), В следующий раз, когда нам нужно новое поле, мы сначала ищем неиспользованное резервное поле.

, Таким образом, мы заканчиваем с с customer.reserve_field_14 содержащий адрес электронной почты клиента.

В один день наш босс думал о представлении резервные таблицы , но fortunatly мы могли убедить его не делать это.

Правило 2: Один из наших продуктов записан в VB6, и VB6 имеет предел общего количества различных имен идентификатора и так как код является очень большим, мы постоянно сталкиваемся с этим пределом. Как "решение" пронумерованы все имена локальной переменной:

  • Lvarlong1
  • Lvarlong2
  • Lvarstr1
  • ...

, Хотя это эффективно обходит предел идентификатора, эти два правила объединенный вывод к красивому коду как это:

...

If Lvarbool1 Then
  Lvarbool2 = True
End If

If Lvarbool2 Or Lvarstr1 <> Lvarstr5 Then
  db.Execute("DELETE FROM customer WHERE " _ 
      & "reserve_field_12 = '" & Lvarstr1 & "'")
End If

...

можно вообразить, как трудно это должно зафиксировать старый или чужой код...

Последнее обновление: Теперь мы также используем "резервные процедуры" для членов парламента, не занимающих официального поста:

Private Sub LSub1(Lvarlong1 As Long, Lvarstr1 As String)
  If Lvarlong1 >= 0 Then 
    Lvarbool1 = LFunc1(Lvarstr1)
  Else
    Lvarbool1 = LFunc6()
  End If
  If Lvarbool1 Then
    LSub4 Lvarstr1
  End If
End Sub

РЕДАКТИРОВАНИЕ: кажется, что эта кодовая комбинация становится все более популярной. Посмотрите этот сообщение The Daily WTF для узнавания больше: Астигматизм :)

54
ответ дан 8 revs 23 November 2019 в 20:32
поделиться

Очень самый странный, который я имел, и тот, который взял меня некоторое время для свержения, был, когда владелец нашей компании потребовал, чтобы нашим новым продуктом был IE только. Если это могло бы работать над FireFox, который был в порядке, но это должен был быть IE только.

Это не могло бы звучать слишком странным, за исключением одного небольшого дефекта. Все программное обеспечение было для сделанного на заказ пакета программного обеспечения сервера, работанием на Linux и всех клиентских полях, которые покупал наш клиент, был Linux. За исключением попытки выяснить, как получить Вино (в те дни, очень ненадежный) и работа всех этих полей и наблюдения, если мы могли бы получить выполнение IE и обучение их администраторы, как отладить Винные проблемы, просто не было возможно удовлетворить запросу владельца. Проблема состояла в том, что он делал веб-дизайн и просто не знал, как сделать веб-сайты совместимыми с FireFox.

Это, вероятно, не потрясет Вас, чтобы знать, что та наша компания обанкротилась.

71
ответ дан Ovid 23 November 2019 в 20:32
поделиться

Неспособность использовать Отражение в качестве менеджера утверждала, что это включило слишком много 'волшебства'.

74
ответ дан leppie 23 November 2019 в 20:32
поделиться

Половина команды одобрила добавление отступа с четырьмя пространствами; другая половина привилегированного добавления отступа с двумя пространствами.

, Как можно предположить, стандарт кодирования передал под мандат три, чтобы "нарушить все одинаково" (прямая кавычка).

81
ответ дан 2 revs 23 November 2019 в 20:32
поделиться

Мой приятель встретился с этим правилом при работе в правительственном задании. Использование ++ (пред или сообщение) было полностью запрещено. Причина: Различные компиляторы могли бы интерпретировать его по-другому.

84
ответ дан JaredPar 23 November 2019 в 20:32
поделиться

В прежнем задании:

  • таблицы "Normal" начинаются с T _
  • , таблицы "System" (обычно поиски) начинаются с TS_ (кроме тех случаев, когда они не делают, потому что кто-то не чувствовал себя подобно ему в тот день)
  • , Таблицы перекрестных ссылок начинаются с TSX _
  • , Все имена полей начинаются с F _

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

88
ответ дан 2 revs 23 November 2019 в 20:32
поделиться

Должно быть 165 модульных тестов (не обязательно автоматизированы) на 1 000 строк кода. Это тренируется в одном тесте примерно для каждых 8 строк.

, Само собой разумеется, некоторые строки кода довольно длинны, и возврат функций это указатели, чтобы позволить объединять в цепочку.

33
ответ дан harriyott 23 November 2019 в 20:32
поделиться

Мы делали проект C++, и руководитель группы был парнем Паскаля.

, Таким образом, у нас был стандарт кодирования, включают файл для переопределения всего этого противный C и синтаксис C++:

#define BEGIN {
#define END }

, но ожидают существует больше!

#define ENDIF }
#define CASE switch

и т.д. Трудно помнить после всего этого времени.

Это взяло то, что будет совершенно читаемым кодом C++ и сделает его неразборчивым любому кроме руководителя группы.

Мы также должны были использовать обратную Венгерскую запись, т.е.

MyClass *class_pt  // pt = pointer to type

UINT32 maxHops_u   // u = uint32

, хотя странно я вырос для симпатии этого.

90
ответ дан 2 revs, 2 users 80% 23 November 2019 в 20:32
поделиться

После того, как работавший на проекте, где подчеркивания были запрещены. И я имею в виду полностью запрещенный. Таким образом в c# приложении winforms, каждый раз, когда мы добавили новый обработчик событий (например, для кнопки) мы должны будем переименовать имя метода по умолчанию от buttonName_Click () к чему-то еще, только для удовлетворения эго парня, который записал стандарты кодирования. По сей день я не знаю то, что он имел против скромного подчеркивания

97
ответ дан ZombieSheep 23 November 2019 в 20:32
поделиться

мой друг - мы позвоним ему, CodeMonkey - вытащил его первое задание из колледжа [ многие несколько лет назад] выполнение внутренней разработки в КОБОЛе. Его первая программа была отклонена как 'не исполнение наших стандартов', потому что это использовало... [дрожь!] вложенные операторы IF

стандарты кодирования запретили использование вложенных операторов IF

теперь, CodeMonkey не был застенчив и был уверен в его способностях, таким образом, он сохранил в выяснении у всех цепочку и вниз проход, почему это правило существовало. Большинство утверждало, что они не знали, некоторые составили материал об 'удобочитаемости', и наконец один человек помнил исходную причину: первая версия компилятора КОБОЛа, который они использовали, имела ошибку и не обработала вложенные операторы IF правильно.

Эта ошибка компилятора, конечно, исправлялась, по крайней мере, в течение десятилетия, но никто не бросил вызов стандартам . [baaa!]

CodeMonkey был успешен в получении измененных стандартов - в конечном счете!

101
ответ дан Steven A. Lowe 23 November 2019 в 20:32
поделиться

Запрещенный:

while (true) {

Позволенный:

for (;;) {
104
ответ дан bh213 23 November 2019 в 20:32
поделиться

Я работал в месте, которое имело слияние между 2 компаниями. 'Доминирующему' записали главный сервер в K& R C (т.е. предварительный ANSI). Они вынудили команды Java (оба офиса - вероятно, 20 devs общих количеств) использовать этот формат, который радостно проигнорировал 2 столба "дебатов фигурной скобки" и переходит прямо к сумасшедшему:

if ( x == y ) 
    {
    System.out.println("this is painful");
    x = 0;
    y++;
    }
107
ответ дан Michael Easter 23 November 2019 в 20:32
поделиться

Назад в 80-х/90-х, я работал на компанию средства моделирования самолета, которая использовала ФОРТРАН. Наш компилятор ФОРТРАНА имел предел 8 символов для имен переменной. Стандарты кодирования компании зарезервировали первые три из них для получения информации о стиле Венгерской записи, Таким образом, мы должны были попытаться создать значимые имена переменной со всего 5 символами!

131
ответ дан 2 revs 23 November 2019 в 20:32
поделиться

Я когда-то работал под тиранией Могущественный Король VB .

Король VB был чистым ведущим устройством MS Excel и VBA, а также базы данных ( Следовательно его фамилия: Он играл с Excel, в то время как разработчики работали с компиляторами, и оспаривание ему на базах данных могло иметь неблагоприятные эффекты на Вашу карьеру... ).

, Конечно, его огромный навыки дали ему уникальный видение проблем разработки и решений для управления проектами: не точно кодируя стандарты в самом строгом смысле, у Короля VB регулярно были новые идеи о "кодировании стандартов" и "лучших практик", которые он попробовал (и часто успешно выполнился) наложить на нас. Например:

  • Все массивы C/C++ должны запуститься в индексе 1, вместо 0. Действительно, использование 0 как первый индекс массива является устаревшим, и было заменено Visual Basic 6 проницательное управление индексом массива.

  • Все функции должны возвратить код ошибки: в VB6 нет никаких исключений, итак, почему нам были бы нужны они вообще? ( т.е. в C++ )

  • Начиная со "Все функции должны возвратиться, код ошибки" не практичен для функций, возвращая значимые типы, все функции должны иметь код ошибки как сначала [в/] параметре.

  • Весь наш код проверит коды ошибки ( ведомый к худшему случаю если-добавления-отступа VBScript, которое я когда-либо видел в своей карьере... Конечно, как "еще" пункты никогда не обрабатывались, никакая ошибка не была на самом деле найдена до слишком поздно ).

  • , Так как мы работаем с C++/COM, начиная в тот же день, мы кодируем все наши функции утилиты DOM в Visual Basic.

  • ASP 115 ошибок являются злыми. Поэтому мы будем использовать На Ошибочном Резюме Затем в нашем коде VBScript/ASP для предотвращения их.

  • XSL-T является объектно-ориентированным языком. Используйте наследование для разрешения проблем (, немое удивление почти повредилось, моя челюсть открывают этот день ).

  • Исключения не используются, и таким образом должны быть удалены. Поэтому мы снимем флажок с флажком, просящим вызов деструктора в случае раскрутки исключения (, потребовались дни для эксперта для нахождения причины всех тех утечек памяти, и он почти пришел в бешенство, когда он узнал, что они охотно проигнорировали (и скрылись), его техническое примечание о проверке опции снова, отправил небольшие количества недель прежде ).

  • выгода все исключения в COM-интерфейсе наших модулей COM, и располагают их тихо ( этот путь, вместо катастрофического отказа, модуль, только казалось бы, был бы быстрее... Блестящий!... Когда мы использовали Гјber обработку ошибок, описанную выше, даже нам потребовалось некоторое время для понимания то, что действительно происходило... Вы не можете иметь и скорости и исправить результаты, не так ли? ).

  • Запуск сегодня, наша кодовая база разделит на четыре ответвления. Мы справимся с их синхронизацией и интегрируем все исправления/эволюции ошибки вручную.

Все кроме массивы C/C++ , функции утилиты VB DOM и XSL-T как язык ООП были реализованы несмотря на наши протесты. Конечно, за время, некоторые были обнаружены, гм , повреждены и отказались в целом.

, Конечно, Король VB доверие никогда не страдало для этого: Среди более высокого управления он остался "лучшим стрелком" технический эксперт...

Это произвело некоторые забавные побочные эффекты, поскольку Вы видите следующим ссылки, Каков лучший комментарий в исходном коде, с которым Вы когда-либо встречались?

204
ответ дан 10 revs, 3 users 96% 23 November 2019 в 20:32
поделиться

Никогда не удалять любой код при внесении изменений. Нам сказали прокомментировать все изменения. Примите во внимание, что мы используем управление исходным кодом. Эта политика не продлилась долго, потому что разработчики были в шуме об этом и как это сделает код нечитабельным.

239
ответ дан 2 revs, 2 users 67% 23 November 2019 в 20:32
поделиться

Никакой тернарный оператор не позволил, где я в настоящее время работаю:

int value = (a < b) ? a : b;

..., потому что не все "получают его". Если Вы сказали мне, "Не используют его, потому что мы должны были переписать их, когда структуры являются слишком сложными" (вложенные тернарные операторы, кто-либо?), тогда я понял бы. Но когда Вы говорите мне, что некоторые разработчики не понимают их... гм... Уверенный.

240
ответ дан Jarrett Meyer 23 November 2019 в 20:32
поделиться

Почти любой вид венгерской записи.

проблема с венгерской записью состоит в том, что она очень часто неправильно понимается. Исходная идея состояла в том, чтобы снабдить префиксом переменную так, чтобы значение было четким. Например:

int appCount = 0; // Number of apples.
int pearCount = 0; // Number of pears.

, Но большинство людей используют его для определения типа.

int iAppleCount = 0; // Number of apples.
int iPearCount = 0;  // Number of pears.

Это сбивает с толку, потому что, хотя оба числа являются целыми числами, все знают, Вы не можете сравнить яблоки с грушами.

248
ответ дан 4 revs, 2 users 94% 23 November 2019 в 20:32
поделиться

Возможно, не самый диковинный Вы доберетесь, но я действительно действительно ненавижу, когда я должен снабдить имена таблицы базы данных предисловием с 'tbl'

326
ответ дан Galwegian 23 November 2019 в 20:32
поделиться

обратное добавление отступа. Например:

    for(int i = 0; i < 10; i++)
        {
myFunc();
        }

и:

    if(something)
        {
// do A
        }
    else
        {
// do B
    }
333
ответ дан 2 revs, 2 users 97%code_g03s_g00d 23 November 2019 в 20:32
поделиться

Полностью бесполезные соглашения о присвоении имен базы данных. Каждое имя таблицы должно запуститься с числа. Шоу чисел, какой вид данных находится в таблице.

  • 0: данные, которые используются везде
  • 1: данные, которые используются определенным модулем [только 112]
  • 2: таблица поиска
  • 3: календарь, чат и почта
  • 4: вход

из-за Этого сложно находить таблицу, если Вы только знаете первую букву ее имени. Также - поскольку это - mssql база данных - мы должны окружить имена таблиц квадратными скобками везде.

-- doesn't work
select * from 0examples;

-- does work
select * from [0examples];
92
ответ дан Kristof Neirynck 23 November 2019 в 20:32
поделиться

Мы должны были отсортировать все функции в классах в алфавитном порядке, для создания их "легче найти". Не берите в голову, что у язя было выпадающее. Это было слишком многими щелчками.

(тот же технический вывод записал приложение для удаления всех комментариев из нашего исходного кода).

30
ответ дан Nat 23 November 2019 в 20:32
поделиться

Приблизительно в 1987, я устроился на работу с компанией, которая наняла меня, потому что я был одним из маленького небольшого количества людей, которые знали, как использовать Открытие. Открытие, если Вы никогда не слышали о нем, было по существу основанной на ПК реализацией операционной системы Pick - который, если Вы никогда не слышали о нем, получил его имя от его изобретателя, неправдоподобно названного Dick Pick. Много может быть сказано об ОС Pick, большей части из нее хороший. Много супермини-поставщиков (Главный и MIPS, по крайней мере) использовали Pick или их собственные реализации его.

Эта компания была Главным магазином, и для их внутренних систем они использовали информацию. (Нет, который был действительно его именем: это была реализация Начала Pick.) Они имели контракт с состоянием для создания основанной на ПК системы и распространили год в их проект Открытия перед парнем, делающим всю работу, кто был также их директором MIS, решенный он не мог больше делать обеих работ и нанял меня.

Во всяком случае, он установил много стандартов кодирования для их Главного программного обеспечения, многих из который полученный из двух основных условий: 1) использование простых терминалов на 80 столбцов и 2) то, которое с тех пор Главный не имело визуального редактора, он записал свое собственное. Из-за волшебной мобильности кода Pick он победил своего редактора в Открытие и разработал весь проект на ПК с помощью него.

Открытие, конечно, будучи основанным на ПК, имело совершенно хорошего полноэкранного редактора и не возразило, когда Вы пошли мимо столбца 80. Однако в течение первых нескольких месяцев я был там, он настоял, чтобы я использовал его редактора и его стандарты.

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

, О, да. Когда Вы прокомментировали каждую строку кода, это было с конец строки комментарии. Короче говоря, первые 64 символа каждой строки были для кода, тогда была точка с запятой, и затем у Вас было 15 символов для описания то, что сделали 64 символа. Короче говоря, мы использовали конвенцию ассемблера отформатировать наш Выбор/Абсолютный код. Это привело к вещам, которые были похожи на это:

EVENT.LIST[DATE.INDEX][-1] = _         ;ADD THE MOST RECENT EVENT
   EVENTS[LEN(EVENTS)]                 ;TO THE END OF EVENT LIST

(На самом деле, после 20 лет я наконец забыл синтаксис продолжения строки R/Basic, таким образом, он, возможно, выглядел по-другому. Но Вы получаете идею.)

Кроме того, каждый раз, когда необходимо было вставить многострочные комментарии, правило состояло в том, что Вы используете цветочный горшок:

************************************************************************
**  IN CASE YOU NEVER HEARD OF ONE, OR COULDN'T GUESS FROM ITS NAME,  **
**  THIS IS A FLOWER BOX.                                             **
************************************************************************

Да, те заключительные звездочки на каждой строке требовались. В конце концов, при использовании его редактора это была просто простая команда редактора для вставки цветочного горшка.

Получение его смягчиться и позволить мне использовать встроенного редактора Открытия было настоящим сражением. Сначала он был настойчив, просто потому что это были правила. Когда я возразил, что a), я уже знал редактора Открытия b) он, был существенно более функциональным, чем у его редактора, c) другие разработчики Открытия будет та же перспектива, он парировал, что, если бы я не обучался на его редакторе, я никогда не был бы в состоянии работать над Главной кодовой базой, которая, как мы знали, не собиралась происходить, пока ад остался размороженным. Наконец он сдался.

, Но стандарты кодирования были последними для движения. Комментарии цветочного горшка в особенности были глупой пустой тратой времени, и он боролся со мной изо всех сил на них, говоря, что, если бы я буду просто использовать правильного редактора, поддерживающего их, было бы совершенно легко. (Все это стало довольно пассивно-агрессивным.) Наконец я бесшумно сдался, и с тех пор весь код, который я принес для кодирования обзоров, имел его драгоценные комментарии цветочного горшка.

Однажды, несколько месяцев в задание, когда я в значительной степени оказался более, чем компетентный (особенно по сравнению с замечательным парадом других кодеров, которые прошли через тот офис, в то время как я работал там), он смотрел через мое плечо, когда я работал, и он заметил, что я не использовал комментарии цветочного горшка. О, я сказал, я записал средство форматирования исходного кода, которое преобразовывает мои комментарии в Ваш стиль, когда я распечатываю их. Это легче, чем поддержание их в редакторе. Он открыл рот, думал на мгновение, закрыл его, ушел, и мы никогда не говорили о кодировании стандартов снова. Оба из наших заданий стали легче после этого.

29
ответ дан Robert Rossney 23 November 2019 в 20:32
поделиться

В моем первом задании все программы C, неважно, как простой или сложный, имели только четыре функции. У Вас было основное, которое вызвало другие три функции в свою очередь. Я не могу помнить их имена, но они были чем-то вроде, начинаются (), середина (), и конец (). начните () открытые файлы и соединения с базой данных, конец () закрыл их, и середина () сделала все остальное . Само собой разумеется, середина () была очень долгая функция.

И только сделать вещи еще лучше, все переменные должны были быть глобальными.

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

26
ответ дан abeger 23 November 2019 в 20:32
поделиться

Написанный извне стандарт кодирования C, в котором было правило «не полагаться на встроенный приоритет операторов, всегда использовать скобки»

Достаточно справедливо, очевидным намерением было запретить:

a = 3 + 6 * 2;

в пользу:

a = 3 + (6 * 2);

Дело в том, что это было реализовано с помощью инструмента, который следовал правилам синтаксиса C, а именно '=', '==', '.'. и доступ к массиву - это операторы. Таким образом, код вида:

a[i].x += b[i].y + d - 7;

нужно было записать как:

((a[i]).x) += (((b[i]).y + d) - 7);
26
ответ дан 23 November 2019 в 20:32
поделиться

Когда я начал работать в одном месте и начал вводить свой код в систему управления версиями, мой босс внезапно подошел ко мне и попросил прекратить совершать так много. Он сказал мне, что разработчику не рекомендуется делать более одного коммита в день, потому что это засоряет систему контроля версий. Я просто уставился на него ...

Позже я понял, что причина, по которой он даже подошел ко мне по этому поводу, заключается в том, что сервер SVN отправлял ему (и еще 10 руководителям высшего звена) письмо по каждой совершенной кем-то фиксации. И, захламляя систему контроля версий, я догадался, что он забил свой почтовый ящик.

41
ответ дан 23 November 2019 в 20:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: