IOS debugging skills-compiler predefined macros
As we all know, Objective-C is a superset of C language and must retain some features of C language. Today, we will use the predefined macros of the compiler to output some information to debug the program.
These macros include:
(1) _ FUNCTION _: // obtain the current method name;
(2) _ func _: // obtain the current
/***1. Macros are simply replaced when the compiler is compiling the source code, without any logical detection, that is, simple code copying. 2. When a macro is defined, the type of the parameter is not considered. 3. The use of a parameter macro causes a block of code with the same effect to have multiple copies in the destination file, which increases the size of the target file. 4. Parameter macros run
The reference count is clever and convenient, but most of the processing processes involve pointers, which are cumbersome and error-prone. To address this problem, Cocos2d-x is accurate for us
A series of auxiliary macros are provided to simplify the Code. These macros are included in the header file "ccplatform Macro. H. Table 2-2 lists the macros related to mem
In iOS development, macro definitions are often used, or some data types are modified with const, and often developers do not know how to use them correctly, resulting in the confusion of macros and const decorations in the project.Can you distinguish between the following? Do you know when to use it?#define Hscoder @"Hansha haha"nsstring *hscoder = @ "Hansha haha"; extern NSString *hscoder; extern const nsstring *hscoder; Static Const NSString *hs
Variadic Macros is function-like macros that contain a variable number of arguments.RemarksTo use Variadic macros, the ellipsis is specified as the final formal argument in a macro definition, and the ReplacemENT identifier __va_args__ May is used in the definition to insert the extra arguments. __va_args__ is replaced by all of the arguments that match the ellip
6. The instructions for macro actions are not required when you use macros, but you can make macros easier to understand and maintain. You cannot use SQL expressions in the Criteria column of a macro. Typically, the direct execution of a macro is just a test. You can either attach a macro to a form, report, or control to respond to an event, or create a custom menu command that executes a macro, after you m
1, click Macros from the Macros submenu on the Tools menu.
2. In the Macro name box, click the macro: an action or a set of actions that you can use to automate tasks. You can record macros in the Visual Basic for Applications programming language. ) is named.
If the macro does not appear in the list, in the Macros i
In the process of making PowerPoint courseware, a courseware often contains multiple slides, and for the sake of the beauty of the courseware, a different picture is inserted into the background in almost every slide. The same insert background image operation repeated n times, it is too tiring. In fact, you can do this quickly by "macros".
Create a new folder named "Background" in any location on your hard disk (such as the F-packing directory). The
1. Overview
After the const keyword is in C + +, the function of the macro definition constants is no longer recommended. This makes the macros seem useless. In fact, the macro can do a lot of things, the author is difficult to enumerate all. Here, just a few typical usage, I hope you can benefit from it.
2. Realize multi-environment compatibility
The common scenario is that we implement a function that wants it to only be satisfied in some kind of
In the final section of VBA learning, I would like to emphasize that to make good use of recording macros, Excel's Help and network search.
In the process of self-study VBA, I often say to use more-learn-think-more and Beginners self-study VBA also three big tools: Recording macros, VBA Help and network search. Make good use of these three kinds of words, many problems do not need the help of others can so
Excel 2013 Macro-enabled methods:
Enabling macros Step 1: Because the interface changes are still relatively large, so here also explains the location, open Office 2013 Excel, if you are not entered by the file, then we click on a "Blank Workbook":
Enable Macros Step 2: Click "File" on the menu bar, then select "Options", and in the Pop-up Options menu, click Trust Center settings in the Trust Cente
| _ ioc_write (bidirectional ).The kernel defines the _ IO (), _ ior (), Iow (), and _ IOWR () macros to help generate the above cmd. The following describes the implementation of _ IO (). Others are similar:
You can see the definition of _ IO () in ASM-generic/IOCTL. h.:
# DEFINE _ IO (type, NR) _ IOC (_ ioc_none, (type), (NR), 0)
Let's look at the definition of _ IOC ().:
# DEFINE _ IOC (Dir, type, NR, size )\(DIR) (Type) (NR) (Size)
It can be see
description in section 6.10.3.1 of the standard is still clear, and it writes as follows:
after the arguments for the invocation of a function-like macro have been identified, argument substitution takes place. A parameter in the replacement list, unless preceded by a # Or # preprocessing token or followed by a ## preprocessing token (see below), is replaced by the corresponding argument after all macros contained therein have been expande
Three macro tools I used in vc6
Favorites
New article: Status Bar (3/3)-teststatusbar. Java implemented in Java | old article: Create a class for the filefilter object used by jfilechooser implemented by RegEx
AlthoughHowever, the time to use VC is not short, but I recently noticed that the VC can also customize macros, such as Word and execel. I wrote the following three, which has a good effect and can greatly prolong the service life of the keybo
declare_dynamic macro to the Class header file, and then include this module in all. cpp files that need to access part class objects. If delcare_dynamic and implement_dynamic macros are used as described, you can use the runtime_class macro and cobject: iskindof function to determine the object class during running time. If declare_dynamic is included in the class definition, implemetn_dynamic must be included in the class tool.
Declare_dyncreateDec
1. Question:
C ++ rtti lacks some runtime information and cannot directly create an object based on the object name. To achieve serialization, MFC constructs its own rtti information from the ground up and defines a set of macros. For details, refer to the implementation of the following classes and Macros in the MFC source generation:Cruntimeclass, cobject, declare_dynamic, implement_dynamic
2. Requirement
Some predefined macros are specified in the C standard and are often used in programming. The following table lists some predefined macros that are frequently used.
_ Date _ Date of preprocessing (string text in the form of "Mmm dd YYYY)
_ File _ represents the string Text of the current source code file name
_ Line _ represents the integer constant of the row number in the current source code.
_ Time _
macro to the Class header file, and then include this module in all. CPP files that need to access part class objects. If DELCARE_DYNAMIC and IMPLEMENT_DYNAMIC macros are used as described, you can use the RUNTIME_CLASS macro and CObject: IsKindOf function to determine the object class during running time. If DECLARE_DYNAMIC is included in the class definition, IMPLEMETN_DYNAMIC must be included in the class tool.DECLARE_DYNCREATEDECLARE_DYNCREATE (c
)__attribute__((aligned (n)))To align the structure members to the natural boundary of n Bytes. If the length of a member in the structure is greater than N, the maximum member length is used for alignment.4)__attribute__ ((packed))Cancels the optimization alignment of the structure during compilation and alignment according to the actual number of bytes occupied.The first method above n = 1, 2, 4, 8, 16... is more common.
#define CACHE_ALIGNED __attribute__((aligned(CACHE_ALIGN_SIZE)))3.
Variab
Implement TODO macros by yourself//turn into a string#define STRINGIFY (S) #S// macros that need to be solved two times before they can be solved#define DEFER_STRINGIFY (s) stringify (s)#define PRAGMA_MESSAGE (msg) _pragma (stringify (MESSAGE (msg))// to beWarningAdd more information#define Formatted_message (MSG)"[todo-]defer_stringify (__counter__)"] "MSG"\ n"defer_stringify (__file__)"line"defer_stringif
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.