Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
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

List of 27 messages in thread
TopicAuthorDate
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      

Back to Subject List