|
|
  |
(char *)p = 0; выдает ошибку "invalid lvalue in assignment", это нормально для GCC? а... для ANSI C? |
|
|
|
Mar 31 2006, 07:04
|
Местный
  
Группа: Свой
Сообщений: 242
Регистрация: 25-08-04
Пользователь №: 537

|
Цитата(Edmundo @ Mar 30 2006, 23:52)  Чего-то я в первый раз встречаю, чтобы приводили левую часть. Обычно правую приводят к левой... А что за DSP-шник то, который Keil поддерживает? Если честно я тоже первый раз встречаю, чтобы приводили левую часть, сам никогда так не делаю. Но вот встретил это в Кейловском примере для LPC214x. Блин случайно написал не в ту ветку (для DSP).
|
|
|
|
|
Mar 31 2006, 07:28
|
Местный
  
Группа: Свой
Сообщений: 242
Регистрация: 25-08-04
Пользователь №: 537

|
Цитата(zltigo @ Mar 31 2006, 11:11)  Цитата(vet @ Mar 30 2006, 17:37)  Если честно я тоже первый раз встречаю, чтобы приводили левую часть, сам никогда так не делаю.
p = NULL; Для того, что-бы "так не делать" и заодно не думать C/C++ (char *)p = 0; или что-то еще... это лишь абстракция. Вот исходник от Keil: (BYTE *)pD += ((USB_CONFIGURATION_DESCRIPTOR *)pD)->wTotalLength;
Сообщение отредактировал Alex2172 - Mar 31 2006, 07:28
|
|
|
|
|
Mar 31 2006, 08:57
|
Знающий
   
Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32

|
Цитата(Alex2172 @ Mar 31 2006, 11:28)  Вот исходник от Keil: (BYTE *)pD += ((USB_CONFIGURATION_DESCRIPTOR *)pD)->wTotalLength; Здесь приведение к BYTE* необходимо, чтобы задать величину инкремента.
--------------------
Главная линия этого опуса ясна мне насквозь!
|
|
|
|
|
Mar 31 2006, 09:10
|
Местный
  
Группа: Свой
Сообщений: 242
Регистрация: 25-08-04
Пользователь №: 537

|
Цитата(vet @ Mar 31 2006, 12:57)  Цитата(Alex2172 @ Mar 31 2006, 11:28)  Вот исходник от Keil: (BYTE *)pD += ((USB_CONFIGURATION_DESCRIPTOR *)pD)->wTotalLength;
Здесь приведение к BYTE* необходимо, чтобы задать величину инкремента. Естественно... Но попробуйте это объяснить компилятору GCC. При портировании в GCC пришлось везде код подобного типа менять на... BYTE *p = (BYTE *) pD; p += ((USB_CONFIGURATION_DESCRIPTOR *)pD)->wTotalLength; pD = (USB_CONFIGURATION_DESCRIPTOR *)p;
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|