preprocessing Directives
The Swift compiler does not contain pre-processors. Instead, it takes advantage of compile-time properties to generate configuration and language features to accomplish the same functionality. Therefore, Swift does not introduce pre-processing instructions.
Simple Macro
In C and objective-c, you typically use a # define directive that defines a basic constant in
=dispatch_get_main_queue ();///Global QueueLet Kglobalthread = Dispatch_get_global_queue (Dispatch_queue_priority_default,0);//MARK:-System version///get the system version numberLet ksystemversion =Float (Uidevice.currentdevice (). systemversion);///whether the IOS7 systemLet Kisios7orlater = Int (Uidevice.currentdevice (). systemversion) >=7?true:false;///whether the IOS8 systemLet Kisios8orlater = Int (Uidevice.currentdevice (). systemversion) >=8?true:false;///whether the IOS9 systemLet Kis
importFoundationletgreeting="hello,world!"letcapitalizedGreeting=greeting.capitalizedString//capitalizedGreeting:String=Hello,World!
If we do need to use a NSString object, we can use a Swift string value and convert it. The string type can always be converted from a NSString object to a swift string value, so it is not necessary to use an optional type converter (as?). We can also create a
to an object can be a raw pointer with a value of NULL (abbreviated as nil in objective-c). In Swift, all values – including references to structs and objects – are guaranteed to be non-null. As an alternative, you will wrap this nullable value as optional type. When you need to declare a value of NULL, you need to use nil. You can learn more in optionals.OBJECTIVE-C can use a null tag to set a parameter type, whether the property type or the return
For a long time, macro definition # define is used to define some simple constants. At most, it is used to define a function. It seldom pays attention to macro definition usage. Until the following code is displayed:
#define PLAYSOUNDEFFECT(...) \[[GameManager sharedGameManager] playSoundEffect:@#__VA_ARGS__]
I have never thought about such a powerful usage before. Take a look at some iOS framework header files and find that almost all of them are macro-defined:
I have to say that macro defi
When you record a macro, you can click the toolbar buttons and menu options. However, the macro recorder cannot record mouse motions in the document window, and you must record these actions with the keyboard if you want to move the insertion point, select text, and scroll through the document.
If a dialog box appears during recording, Word will record the dialog box and record all the options settings for the dialog box only if the OK button or close is selected in the selection dialog box. Fo
Developed with VCProgramIt is best to use the verify macro instead of assert,
I didn't know why. Today I read the definition of two macros and finally understood it.
1. In debug mode, two macros have the same functions.
2. In the release mode, assert does not calculate the expressions in the parameters. Verify calculates the expressions in the parameters (if it is a function, it will call the function ).
, which is (type *)2: Function and Principle analysis:(1) Function: A pointer to an element in a struct, and a pointer to the struct variable. YesThe CONTAINER_OF macro, we can get pointers to the entire struct variable from the pointer of an element, and thenGet pointers to other elements in the struct.(2) The function of the TypeOf keyword is: Typepof (a) is the type of a given by variable A, typeof is theVariable name gets the variable data type.(3) How this macro works: First use typeof to g
/*** book: "thinkinginc++" * Function: about the use of macros, explore the disadvantages of using macros * Time: September 11, 2014 07:50:54* Author: cutter_point*/#include ". /require.h "#include "Thinkinginc++" 47, about the use of macros, explore the disadvantages of using macros
Predefined macros,
Compilers usually provide different predefined macros for compiled programs based on different platforms and compilation options,
For example, Win32 win64 Linux, such as debug and release.
1. When using the GCC/g ++ compiler, you can run the following command to print the macros pre-compiled by the compiler.
Gcc-DM-e-
2. For details abou
If you want to serialize the macro parameter extension results, you must use two levels of macros.
1 # define xstr (s) STR (S) 2 # define STR (s) # S3 # define Foo 44 STR (FOO) 5 => "foo" 6 xstr (FOO) 7 ==> xstr (4) 8 ==> STR (4) 9 ==> "4"
When S is used in STR, S is stringized, so it is not a macro extension first.
However, S is a common parameter of xstr. Therefore, s itself has been expanded before the xstr macro extension is complete.
When STR
[ThinkingInC ++] 47. Regarding the Use of macros, we explored the disadvantages of using macros. thinkinginc47
/*** Book: [ThinkingInC ++] * function: describes the use of macros. * Time: 07:50:54, January 1, September 11, 2014 * Author: cutter_point */# include ".. /require. h "# include
Reasons for liking Wang Lihong
It can be said that I am a little similar
and print it out!
So we have the following story...
Compiler built-in macros:
First, we will introduce several built-in macro definitions of the compiler. These macro definitions can not only help us write cross-platform source code, but also help us output useful debugging information flexibly.
The ansi c standard has several predefined macros (which are also commonly used ):
_ Line __: Insert the current
Use of Conditional compilation macros and Conditional compilation macros
Jni is often used when writing code in cocos. Sometimes the class instance pointer is used in the c ++ code of jni.
1. define a global variable
# If (CC_TARGET_PLATFORM = CC_PLATFORM_ANDROID) GameInstance * gameInstance = nullptr; # endif
2. In the constructor
# If (CC_TARGET_PLATFORM = CC_PLATFORM_ANDROID) GameInstance * gameInst
1: Let's test and create an excel file, such as "haiguifurong1 ..2: If you want to enable the document, the following message is displayed: "macro disabled.3: click "OK".Table.4: as shown in the following figure, in "tools"-"security" settings, the effect is as follows.5: Go to the macro's "security"-"low"-"OK", and open the excel file again without being affected by the macro.Now you have successfully deleted the
pattern in Swift, see adopting Cocoa design patterns Get more information about the conversion of the general pattern.• For those who intend to convert items from objective-c to Swfit, see propeties.• Provide objective-c name, as necessary, for Swift's properties or methods through the @objc (
Copy Code code as follows:
var Enabled:bool {
@objc (isenabled) get {
/* ... */
}
}
• The instance (-) and Class (+) methods ar
About Swift on SwiftOfficial document translation, for reference only, my English is not good, learning while translating, do not like to spray.Swift is a new programming language for IOS, OS X, WatchOS, and TvOS apps that builds on the best of C and Objective-c, WI Thout the constraints of C compatibility. Swift adopts safe programming patterns and adds modern features to make programming easier, more flex
directives
The Swift compiler does not contain a preprocessor. Instead, it takes full advantage of compile-time attributes, build configurations, and language features to accomplish the same function. Therefore, Swift did not introduce a preprocessing directive.
Simple macros
In C and objective-c, a macro constant defined by the #define directive that you typ
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.