c++

Gert Cuykens gert.cuykens at gmail.com
Sat Feb 19 23:07:34 GMT 2005


On Sat, 19 Feb 2005 02:57:53 -0700, Chad Leigh -- Shire. Net LLC
<chad at shire.net> wrote:
> 
> On Feb 19, 2005, at 2:51 AM, Gert Cuykens wrote:
> 
> > On Thu, 17 Feb 2005 13:17:51 +0100, Hubert Sokołowski
> > <h.sokolowski at wsisiz.edu.pl> wrote:
> >> On Thu, 17 Feb 2005 13:05:43 +0100
> >> Gert Cuykens <gert.cuykens at gmail.com> wrote:
> >>
> >>> static void callback( GtkWidget *widget, gpointer   data ){
> >>>     g_print ("Hello again - %s was pressed\n", (gchar *) data);
> >>> }
> >>>
> >>> why do they put () around gchar ?
> >>> why can it not be gchar *data ?
> >>
> >> You should learn some more about programming in C before you start
> >> writing GTK apps.
> >>
> >> hs
> >
> > Does anybody want to explain what the () thingies are around gchar * ?
> >
> 
> It is a typecast -- coercing "data" to be of type (gchar *) to the
> compiler when matching parameter types at compiler time.
> 
> Chad
> 

lol :) I wish you could see the expression on my face while reading it :) 

Why can i not do this ?

g_print ("Hello again - %s was pressed\n", gchar *data);
or this
gchar *data;
g_print ("Hello again - %s was pressed\n", *data);
or this
gchar *data;
g_print ("Hello again - %s was pressed\n", data);

What does coercing mean ?
Why does the compiler have to match parameters ?

PS what is the difference between ?
 A=*data
 A=data
 A=&data


More information about the freebsd-questions mailing list