Что именно является жестким кодированием? - PullRequest
2 голосов
/ 04 марта 2020

Я считаю, что это значение, которое назначено и не может быть изменено. Примером может быть:

int limit =5;
    for(int i =0 ; i<limit; i++){
        printf("w");

Кроме того, что может быть причиной того, почему я не должен использовать жесткое кодирование? Извините, я новичок в программировании.

Ответы [ 4 ]

5 голосов
/ 04 марта 2020

«Жесткое кодирование» означает что-то, что вы хотите встроить в свою программу или любой проект, и это не может быть изменено напрямую (например, использование значения напрямую вместо использования переменной или константы). Если вы не программируете жестко, то вы делаете что-то вроде запроса пользователю данных или предоставления пользователю возможности поместить данные в командную строку, например.

Итак, в приведенном вами примере вы можете скажем, что печать "w" "жестко запрограммирована". Кроме того, как отметил @ In go Леонхардт, limit также «жестко закодирован», чтобы быть 5.

Вот еще один пример:

Допустим, мы хотим Жесткий код местоположения файла, над которым мы работаем, как на диске C :, вы просто поместите путь к файлу вместе в исходный код:

int main()
{
    const char *filename = "C:\\myfile.txt";

    printf("Filename is: %s\n", filename);
}

Имя файла «жестко закодировано» как: C:\myfile.txt

2 голосов
/ 04 марта 2020

Я считаю, что это значение, которое назначено и не может быть изменено.

Нет, это называется константа . Жесткое кодирование скорее означает

Жесткое кодирование (также жесткое или жесткое кодирование) - это практика разработки программного обеспечения, заключающаяся в встраивании данных непосредственно в исходный код программы или другого исполняемого объекта

~ Wikipedia

Таким образом, «жестко закодированное значение» определено в исходном коде и, таким образом, может быть изменено только программистом. Во многих случаях вы на самом деле не хотите этого. Вы скорее хотите, чтобы значение было изменено пользователем или администратором. Единственными значениями, которые должны быть «жестко закодированы», являются вещи, которые никогда не должны изменяться (например, физические константы).

1 голос
/ 04 марта 2020

Жесткое кодирование использует значение напрямую вместо создания переменной или константы. Итак, в вашем примере "w" жестко закодирован, а 5 - нет. Поэтому кто-то, читающий ваш код, будет иметь некоторое представление о том, почему ваш l oop повторяется 5 раз (это limit), но не знает, почему он печатает "w".

0 голосов
/ 04 марта 2020

Термин «жесткий код» означает, что кто-то записывает данные непосредственно в код, не используя надлежащие методы для выполнения работы.

Пример жесткого кодирования может быть, если мне нужно вернуть некоторые данные из базы данных, но вместо этого я пишу:

return "(1,2,'up')"

Есть несколько причин, по которым кто-то может жестко кодировать что-то, может быть просто чтобы проверить что-то, потому что написать быстрее, чем реальная функция, потому что сегодня пятница, 14:00, и вы хотите go home, et c.

...