c++

Steven freebsd at gizm0.org
Sat Feb 19 23:14:13 GMT 2005


Gert Cuykens wrote:

>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
>_______________________________________________
>freebsd-questions at freebsd.org mailing list
>http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
>  
>
You should really get a book about programming or ask your teacher. 
These are basic questions about c/c++ programming.

But to answer your question: You need to cast the data, so you can hand 
data of different but matching type to the function. (eg. you have a 
pointer to int but the function expects a plain pointer)

Steven


More information about the freebsd-questions mailing list