C言語でのvoidポインタのパラメータの渡し方は?

C言語では、voidポインタを使用して任意の種類のデータを渡すことができます。関数に引数を渡すには、引数のアドレスをvoidポインタに代入し、その後、関数内でvoidポインタを適切な型に変換して引数の値を取得します。

以下は、voidポインタを使用して関数に引数を渡す方法を示すサンプルコードです。

#include <stdio.h>

void printValue(void *ptr, char type) {
    if (type == 'i') {
        int value = *(int*)ptr;
        printf("Integer value: %d\n", value);
    } else if (type == 'f') {
        float value = *(float*)ptr;
        printf("Float value: %f\n", value);
    } else {
        printf("Invalid type\n");
    }
}

int main() {
    int intValue = 10;
    float floatValue = 3.14;

    printValue(&intValue, 'i');
    printValue(&floatValue, 'f');

    return 0;
}

上記の例では、voidポインターとデータ型を表す文字を引数として受け取るprintValue関数を定義しました。この文字に基づいて、voidポインターを対応する型に変換し、引数の値を表示します。

main関数内で、整数型変数intValueと浮動小数点型変数floatValueを宣言し、それぞれのアドレスをprintValue関数に渡し、データ型も指定します。

このプログラムを実行すると、次の結果が出力されます。

Integer value: 10
Float value: 3.140000

この方法を使うと、voidポインタを使って異なる型のパラメータを関数に渡し、必要に応じて関数内で型変換を行うことができます。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds