Это и будет наглядным проявления вашей истины
Упрощу - как объявлять функцию в параметрах вызова которой адрес одной из переменной структуры.
Структуру вы видели. Вызов к примеру так
Код: Выделить всё
draw_men(&tex_1)Код: Выделить всё
draw_men(&tex_1)Код: Выделить всё
draw_men(&tex_1)Код: Выделить всё
draw_men(&tex_1)Код: Выделить всё
draw_men(&tex_1.bi_1);Код: Выделить всё
draw_men(tex_1.bi_1);Код: Выделить всё
#pragma vector=0xIE0_int /* Symbol defined in I/O header file */
__interrupt void my_interrupt_routine(void)
{
/* Do something */
}
In version 5.x, #pragma memory specifies the default location of data objects, and
#pragma function specifies the default location of functions.
...
The following pragma directives have been removed:
codeseg
function
memory
warnings
These pragma directives are recognized and will give a diagnostic message but will have
no effect on the generated code in version 6.x.
Note: Instead of the #pragma codeseg directive, we recommend using the #pragma
location directive or the @ operator for specifying an absolute location.
Код: Выделить всё
epoch = unixtime + (3600ul * (timezone + (flag.dst ? 1u : 0u)));Код: Выделить всё
main.c:421: warning: (373) implicit signed to unsigned conversionКод: Выделить всё
volatile unsigned long epoch=0, unixtime=0;
volatile signed long timezone=0;
struct{
unsigned dst:1;
}flag;
void main(void){
flag.dst=1;
epoch = unixtime + (3600ul * (timezone + (flag.dst ? 1u : 0u)));
while(1){}
}
Код: Выделить всё
epoch = (signed long)unixtime + (3600L * (timezone + (flag.dst ? 1u : 0u)));строго говоря, в общем случае сдвиг времени в зоне не обязан быть целым часом. Например вот эти:volatile signed long timezone=0;
...
epoch = unixtime + (3600ul * (timezone + (flag.dst ? 1u : 0u)));