Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Cách in tên biến trong C

C không có reflection nên không thể in tên biến tại runtime trực tiếp. Tuy nhiên, có thể dùng macro # (stringizing operator) để biến tên biến thành chuỗi tại compile-time.

Ví dụ

#include <stdio.h>

#define VAR_NAME(name) #name

int main() {
    int name;
    char ch;
    printf("Ten bien: %s\n", VAR_NAME(name));
    printf("Ten bien: %s\n", VAR_NAME(ch));
    return 0;
}

Kết quả

Ten bien: name
Ten bien: ch

Giải thích: Macro VAR_NAME(name) dùng toán tử # chuyển tham số thành string literal. Khi gọi VAR_NAME(name), preprocessor thay bằng "name".

Lưu ý: Cách này chỉ hoạt động với tên biến truyền vào macro tại source code. Không thể in tên biến từ một con trỏ hoặc biến chứa tên biến dạng chuỗi tại runtime.