关于#define
请问如下两个语句是什么意思,及其执行效果?
1、#define get_ext4_header(i) ((struct ext4_extent_header *) (i)->i_block)
注:ext4_extent_header 是一个构造,(i)->i_block 是 uint32_t
2、#define EXT_FIRST_EXTENT(__hdr__) \
((struct ext4_extent *) (((char *) (__hdr__)) + \
sizeof(struct ext4_extent_header)))
注:ext4_extent、ext4_extent_header是构造
关于语句1, i_block是在一个构造里的,#define get_ext4_header(i) 是否默认了i为一个构造呢?
(struct ext4_extent_header *)是否强行把 (i)->i_block 转成一个构造呢?
关于语句2,结构1是差不多,关键在与每行最后的 "\" ,其意思是换行吗?还有就是sizeof(构造)是不是返回一个构造里所有声明类型的字节大小?
本人菜鸟,莫见笑。
请高手们不要吝啬教导,谢谢。
另外,以上语句来自一个Qt程序,这两个语句是C的标准语句吗?以上语句在VB.net如何实现?