ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
96943 Топик полностью
Gamma SPb (14.08.2007 16:55, просмотров: 174) ответил vet_ на const int n=5; в хедере никакой памяти и не выделит
сам то пробовал? <c> const UWORD asdf = 5; </c> MPLAB C30 3.00: task_term.o(.const+0x0):task_term.c: multiple definition of `asdf' term_func.o(.const+0x0):term_func.c: first defined here RealView 3.0: .\sim\obj\_sim.axf: Error: L6200E: Symbol asdf multiply defined (by appl.o and std_retarget.o). Ну да ладно, фиг с ним. Допустим компилятор не соответсвует стандарту (бо стандарт говорит, что const это квалификатор, который указывает на то, что эта переменная может использоваться только для чтения, и все. Больше она ничем от других переменных не отличается) - не выделяет память для объявленной глобально переменной. Но что какой код он вам в таком случае сгенерит??? asdf.h : <c> const U08 qwer[4] = {0x00, 0x01, 0x02, 0x03}; </c> asdf.c : <c> #include asdf.h U08 zxcv[4]; void copy(void) { memcpy(zxcv, qwer, sizeof(zxcv)); } </c> Хотите сказать, что компилятор проигнорирует вызов стандартной функции??