g_signal connectを使用して、 "data"フィールドを使用して単純な文字 'S'のパラメータを渡そうとしています。cデータフィールドを使用するGTK g_signal_connect
???(私はフィールドがデータ用ではなく、データ用のポインタであることを理解していると思います)??? my_test 2つのパラメータまたは1つを受け入れるべきかどう
void my_test(GtkMenuItem *menuitem, gpointer data)
{
printf("Pointer variable contains: %p\n", data);
}
私はわからない。このような
g_signal_connect (G_OBJECT(b_save), "clicked", my_test, (gpointer) 'S');
呼び出すコード:
とにかく、私はこのようなコードがありますか? 私は指し示す値 'S'をどのように印刷するか分かりません。
まだmy_testには1つまたは2つのパラメータがありますか? –
私はまだそれを分類していません。 [OK]を私は入れて:静的なcharデータ= 'S'を使用して&呼び出してデータ。 my_testは1つまたは2つのパラメータを受け取りますか?どのように見える?また、printf( "データ変数には%c \ n"、(char)データが含まれています。コンパイラエラーが発生します。警告:ポインタから異なるサイズの整数にキャスト[-Wpointer-to-int-cast]。 –
@GraemeJensz - 私は2つの排他的なオプションを提示しました。あなたは定数を渡し続けるか、アドレスを渡します。あなたがキャラクターに住所を渡すなら、それをそのまま扱う(私は答えを更新した)。文字値そのものを渡すと(ポインタにキャストした後)、それを文字にキャストする必要があります。警告を取り除くには、 'char(char(char)(int)data')にキャストする前に' int'または 'long'に中間キャストを行います。 – StoryTeller