Or2
V2EX  ›  问与答

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

  •  
  •   Or2 · Dec 26, 2022 · 1467 views
    This topic created in 1242 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   ·   948 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 20:05 · PVG 04:05 · LAX 13:05 · JFK 16:05
    ♥ Do have faith in what you're doing.