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 15:14
Read: times


 
#147310 - Declaration
Responding to: ???'s previous message
Stefan, I believe that your declarations for your pointer to a function is incorrect and might be ambiguous for some compilers.
I think this is the correct convention for a pointer to a function of type void with no arguments in C:

void (*functionptr)();


Try this code and see what you get:


#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}};

int main (void)
{
   const void (*myfuncptr)();
   int i ;
   mycharptr=&mychar1[0];
   mycharptr=&mychar1[2];			
	 	
   myfuncptr=&xgetstr1;
		
   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);
}



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