Cần thông tin tài liệu về define dynamic variable (chắc thế)

Bữa nay mình bắt gặp đoạn code thế này:

#define STRLEN_DEC(src_char) \
	size_t src_char##_len = strlen(src_char) + 1

Khá là lạ mắt. Nếu mình dùng nó thế này:

char* arg = "123";
STRLEN_DEC(arg);

Thì sau quá trình preprocess, code sẽ xuất hiện khai báo biến số là:

size_t arg_len = strlen(arg) + 1;

Có ai biết chính xác cái này ở trong #define gọi là gì không, mình không biết tìm kiếm về nó thế nào nữa.

This:
https://gcc.gnu.org/onlinedocs/cpp/Concatenation.html

Còn #NAME ở link trên gọi là cái này:
https://gcc.gnu.org/onlinedocs/cpp/Stringification.html

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?