файл xxx.h typedef struct { unsigned char Isto; ... } TDataLbk; Прошу помочь. Пишется прога, состоящая из нескольких модулей.
файл xxx.c #include "xxx.h" volatile TDataLbk DataLbk; Именно здесь проводится заполнение этой структуры. volatile в xxx.c необходим для корректного проведения оптимизации, без неё компилятор выбрасывает DataLbk из конечного кода в файле main.c
файл main.c #include <string.h> #include "xxx.h" extern volatile TDataLbk DataLbk; DataLbk.Isto = 0x00; //без volatile компилятор выбрасывает эти действия memmove(&Obmen[chanl].Out.Data[4], &DataLbk, sizeof(TDataLbk)); На этой строке компилятор выдает ошибку: Error[Pe167]: argument of type "TDataLbk volatile *" is incompatible with parameter of type "void const *"
Вопросов два: 1. Как бороться с этой ошибкой. 2. какая из фу-ий memmov() или memcpy() быстрее в данной ситуации?
|