Or2
V2EX  ›  问与答

初学 C,这个 macro 怎么理解?

  •  
  •   Or2 · Dec 26, 2022 · 1574 views
    This topic created in 1294 days ago, the information mentioned may be changed or developed.
    #define WRITE_ONCE(x, val)				\
    ({							\
    	union { typeof(x) __val; char __c[1]; } __u =	\
    		{ .__val = (val) }; 			\
    	__write_once_size(&(x), __u.__c, sizeof(x));	\
    	__u.__val;					\
    })
    
    

    为什么是一个 union ?而不能直接赋值?

    2 replies    2022-12-26 13:39:44 +08:00
    Or2
        2
    Or2  
    OP
       Dec 26, 2022 via Android
    给力
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   865 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 20:13 · PVG 04:13 · LAX 13:13 · JFK 16:13
    ♥ Do have faith in what you're doing.