Как это разделение линий делает другое? - PullRequest
0 голосов
/ 09 декабря 2018

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

Исходный код , вызвавший серьезные проблемы:

 int Bytes, Size  = cache[index].len;

Новый код , который решил проблему:

 int Bytes  = cache[index].len;
 Size = Bytes;

В чем разница между моим исходным кодом и новым кодом?Разве они не идентичны?

1 Ответ

0 голосов
/ 09 декабря 2018

Они совсем не идентичны.Первый код:

int Bytes, Size = cache[index].len;

Объявляет две переменные, Bytes и Size, оба типа int;Size инициализируется значением cache[index].len, а Bytes неинициализировано (его значение не определено).

Второй код (я вставляю int во вторую строку, чтобы сделать егообъявление-с-инициализатором, так как я предполагаю, что это то, что вы имели в виду):

int Bytes = cache[index].len;
int Size = Bytes;

Объявляет те же две переменные одного типа;но здесь Bytes инициализируется значением cache[index].len, а Bytes затем копируется в Size.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...