標籤:
#import <Foundation/Foundation.h>#define onExit\ __strong void (^block)() __attribute__((cleanup(cleanup),unused)) = ^__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;}void cleanup(__strong void (^*block)()){ (*block)();}int main(int argc, const char * argv[]) { @autoreleasepool { printf("Hello, World!\n"); functionDeprecatedAndObsoleteWarningAndError(); returnValueNotUnusedWarning(); onExit{ printf("onExit\n"); }; } return 0;}
Objective-C 源碼初探 __attribute__