Objective-C 源码初探 __attribute__
#import <Foundation/Foundation.h> //延迟执行,delayFunc函数即为延迟执行的函数 #define onExit\ __strong void (^block)() __attribute__((cleanup(delayFunc),unused)) = ^ void delayFunc(__strong void (^*block)()){ (*block)(); } //在main函数执行之前执行的函数 __attribute__((constructor)) void ExecuteBefore_main(){ printf("ExecuteBefore_main\n"); } __attribute__((destructor)) void ExecuteAfter_main(){ printf("ExecuteAfter_main\n"); } //函数可用性 void functionDeprecatedAndObsoleteWarningAndError() __attribute__ ((availability(macosx,introduced=10.4,deprecated=10.10,obsoleted=10.13))); void functionDeprecatedAndObsoleteWarningAndError(void){ } //返回值未使用 int returnValueNotUnusedWarning() __attribute__ ((warn_unused_result)); int returnValueNotUnusedWarning(){ return 1; } int main(int argc, const char * argv[]) { @autoreleasepool { printf("Hello, World!\n"); functionDeprecatedAndObsoleteWarningAndError(); returnValueNotUnusedWarning(); onExit{ printf("onExit\n"); }; } return 0; }
Stay hungry,stay foolish.