??? 11/21/07 11:37 Read: times |
#147303 - helpfull ,thanks, but.. Responding to: ???'s previous message |
Thank You Bret,
As i read pointers are wonderland. Bellow is code which is compiled ok by arm-gcc and rejected by IAR. What i want at end is to execute routine pointed at end of "for" cicle by pointer myfuncptr. Now i'm downloading IAR-EW for arm and will try , but suppose - errors will be same. #define __MAIN_C__ const char mychar1[6]="ABCDEF"; const char *mycharptr; int mymode; void xgetstr1(void); void xgetstr2(void); typedef struct {int mode; void *funcptr1; const void *funcptr2; } myoneset; void xgetstr1(void){ mycharptr=&mychar1[0];} void xgetstr2(void){ mycharptr=&mychar1[1];} myoneset listofsets[2] = {{1,&xgetstr1,&xgetstr2}, {3,&xgetstr2,&xgetstr1}}; // Error[Pe144]: a value of type "void (*)(void)" cannot be used to initialize an entity of type "void *" // Error[Pe144]: a value of type "void (*)(void)" cannot be used to initialize an entity of type "void const *" // Error[Pe144]: a value of type "void (*)(void)" cannot be used to initialize an entity of type "void *" // Error[Pe144]: a value of type "void (*)(void)" cannot be used to initialize an entity of type "void const *" int main (void) { const void *myfuncptr; int i ; mycharptr=&mychar1[0]; mycharptr=&mychar1[2]; myfuncptr=&xgetstr1; //Error[Pe513]: a value of type "void (*)(void)" cannot be assigned to an entity of type "void const *" myfuncptr=listofsets[0].funcptr1; myfuncptr=listofsets[1].funcptr2; myfuncptr=0; mymode=2; for (i=0;i<2;i++) {if (listofsets[0].mode==mymode) {myfuncptr=listofsets[1].funcptr2;}; } return(0); } regards |
Topic | Author | Date |
Sequence of learning 8051, asm and C | 01/01/70 00:00 | |
2 Issues | 01/01/70 00:00 | |
my wrong path | 01/01/70 00:00 | |
OT, but | 01/01/70 00:00 | |
OT - error message | 01/01/70 00:00 | |
Use the tags | 01/01/70 00:00 | |
single-character const | 01/01/70 00:00 | |
QED? | 01/01/70 00:00 | |
As Erik suggests | 01/01/70 00:00 | |
Just learning - too luxury. | 01/01/70 00:00 | |
how can that be "too luxorious" | 01/01/70 00:00 | |
Foolish builder? | 01/01/70 00:00 | |
pointer to a const | 01/01/70 00:00 | |
True, but... | 01/01/70 00:00 | |
Explaining | 01/01/70 00:00 | |
helpfull ,thanks, but.. | 01/01/70 00:00 | |
Declaration | 01/01/70 00:00 | |
thanks | 01/01/70 00:00 | |
Adjust declaration | 01/01/70 00:00 | |
thanks again | 01/01/70 00:00 | |
const | 01/01/70 00:00 | |
no wrong path | 01/01/70 00:00 | |
learning C | 01/01/70 00:00 | |
Freebies | 01/01/70 00:00 | |
Erik is right | 01/01/70 00:00 | |
not necessary | 01/01/70 00:00 | |
You\'re skipping the most important step ... | 01/01/70 00:00 |