Действительно ли приемлемо для программиста на C++ не знать, как завершенные пустым указателем строки работают? [закрытый]

Вам нужно заключить переменную в кавычки и заменить == на = (так как первая является башизмом).

Проблема в том, что, как и в bash, пустая переменная удаляется до того, как она достигает команды, поэтому [ (это просто другое имя для test) получает свои аргументы, например:

[110 ]

, которое не является допустимым выражением.

Итак, это должно быть

if [ "$prompt_hostname" = 'remote-host' ]

или

if test "$prompt_hostname" = remote-host

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

6
задан Joel Coehoorn 28 December 2011 в 20:31
поделиться

16 ответов

Что он использует- std::string только? Он знает о строковых литералах? Каково его взятие на строковых литералах?

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

16
ответ дан 8 December 2019 в 02:00
поделиться

ЗАВЕРШЕННЫЕ ПУСТЫМ УКАЗАТЕЛЕМ строки не существуют, таким образом, я предполагаю, что он мог бы быть хорошим наймом.

Обновление: завершенный пустым указателем и завершение '\0' появляются в стандарте C++, согласно некоторым комментариям. Вместо того, чтобы удалить мой ответ, я превращаю его в Wiki, для сохранения интересной части дебатов.

0
ответ дан 8 December 2019 в 02:00
поделиться

Ну, я получил известие от друга в немецкой SAP они, они наняли кого-то в качестве разработчика и затем позже обнаружили, что он всегда думал 1 КБ = 1 000 байтов. Похож они обнаружили его, когда он сделал некоторую ошибку. Они были потрясены, затем переместил его, чтобы сделать поддержку клиентов.

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

Не обязательно означает, что он плох. Просто принадлежит новому поколению пепси разработчиков.

1
ответ дан 8 December 2019 в 02:00
поделиться

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

В этой точке важная вещь состоит в том, чтобы выяснить, необразован ли он просто (он никогда не сталкивался с потребностью прежде), или если он - он вид парня, который никогда не изучает НИЧЕГО, в чем он сразу не нуждается, или если он - идиот. Если № 1, то можно рассмотреть найм его, если он знает достаточно, чтобы быть полезным. Если № 2 затем, я взял бы передачу, но возможно можно использовать 9-5er. Если № 3, покажите ему дверь.

И я не взял бы не знание о материале C СЛИШКОМ серьезно, я встретил людей, которые программировали в C в течение 15 лет, кто не знал о __FILE__ и __LINE__. И они были хороши, они просто никогда не сталкивались с ним, прежде чем я показал его им. Этот парень мог быть тем же путем – он только когда-либо видел STL способ сделать вещи, таким образом, он не знает ничто больше.

1
ответ дан 8 December 2019 в 02:00
поделиться

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

1
ответ дан 8 December 2019 в 02:00
поделиться

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

станд.:: строки (или CStrings) использовались вместо этого.

2
ответ дан 8 December 2019 в 02:00
поделиться

В работе мы делаем в моей компании, и я предполагаю, что это имеет место для многих других мест, необходимо знать о ЗАВЕРШЕННОМ ПУСТЫМ УКАЗАТЕЛЕМ (или завершенный нуль) строки. Да, мы используем C++, и мы пытаемся использовать станд.:: представьте в виде строки, где мы можем. Но у нас есть код, который был несколько разработанных годы назад, который использует строки C-стиля, sprintf и этот вид материала. Затем у Вас есть внешний код и API, как можно назвать даже Windows API, не зная об этих понятиях C?

Таким образом, он будет плохим наймом? Ну, что Вы не знаете, что можно учиться... Но это - определенно не хороший знак.

4
ответ дан 8 December 2019 в 02:00
поделиться

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

2
ответ дан 8 December 2019 в 02:00
поделиться

Люди говорят и делают все виды странных вещей будучи интервьюируемыми. Вы видели, что этот человек делает какое-либо кодирование?

1,5 года не являются в значительной степени временем, но приседанием средств опыта, если наем не может думать правильно. Таким образом, я отметил бы это как флаг предупреждения и вырыл бы глубже. Если этап интервьюирования закончен, и необходимо принять решение, это звучит мне как ответ, не должен быть НИКАКОЙ НАЕМ.

1
ответ дан 8 December 2019 в 02:00
поделиться

Это кажется, что это - программист, который не начал как программист. Я взял классы C++ в колледже, и даже прочитайте несколько книг по языку. Каждая книга в рамках первых 3 глав объяснит, как строка, которая является массивом символов, знает, что это заканчивается, при помощи "/0" идентификатора. Это - элементарные знания C++.

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

Извините, если это звучало резким. Я отношусь к своей профессии очень серьезно и считаю это своего рода видом искусства.

2
ответ дан 8 December 2019 в 02:00
поделиться

Рассмотрите курсовую работу в любой основанной на C/C++ курсовой работе старшекурсника. Должен быть курс структур данных, который он или она, должно быть, взял, и этот курс, должно быть, имел присвоение, где они должны реализовать строковый тип с нуля. Очевидно, никто не ожидает всей функциональности станд.:: строка, но они, должно быть, реализовали строковый класс и когда они сделали это, они, должно быть, исследовали этот вопрос, подробно.

Никакой наем.

1
ответ дан 8 December 2019 в 02:00
поделиться

Я сказал бы, что это зависит от того, что Вы хотите нанять их для, и какова их цель в Вашей организации будет.

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

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

Я, однако, не нанял бы кого-то, чтобы сделать дизайн или работать над критическими системами, кто не понял фундаментальных понятий как этот. Любой разработчик, которого я нанимаю, кто будет работать над проектами C++ на высоком уровне, должен понять управление памятью, фундаментальные понятия C и C++, шаблонов и универсального программирования и всех основных принципов, по крайней мере, до разумного градуса, языка, который они будут использовать.

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

5
ответ дан 8 December 2019 в 02:00
поделиться

NUL-завершенные строки (иначе ASCIIZ) не являются даже конструкцией C, я думаю, что хороший программист должен, по крайней мере, знать, что существуют различные способы сохранить строку (завершающийся с 0, снабжая префиксом длину...).

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

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

3
ответ дан 8 December 2019 в 02:00
поделиться

По моему скромному мнению, я ожидал бы, что у компетентного программиста будет основное любопытство, чтобы задаться вопросом, как на самом деле работают вещи как контейнеры STL. Я не ожидал бы, что они обязательно будут готовы реализовать того, заметьте.

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

9
ответ дан 8 December 2019 в 02:00
поделиться

Действительно ли это - знак, что он - потенциально плохой наем?

Определенно, программист на C++ должен понять то, что происходит позади всего прохладного материала STL.

К сожалению, на рынке существует слишком много нестандартных программистов на C++.

BTW: не ПУСТОЙ завершенный, а скорее завершенный нуль.

16
ответ дан 8 December 2019 в 02:00
поделиться

Есть ли какой-либо путь к программисту на C++ с 1,5 годами опыта, чтобы понятия не иметь, что ЗАВЕРШЕННЫЕ ПУСТЫМ УКАЗАТЕЛЕМ строки существуют как понятие и широко используются во множестве приложений?

Нет. Что он делал в течение этих 1,5 лет?

Действительно ли это - знак, что он - потенциально плохой наем?

Да. Знание C должно быть обязательным для программиста на C++.

29
ответ дан 8 December 2019 в 02:00
поделиться
Другие вопросы по тегам:

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