What is compilation mode?
Compilation mode refers to how to place program code and data in memory, how to allocate stacks, and confirm the occupied memory size and how to access them. When the memory mode (compilation mode) is specified, the language The compiler will compile and organize the program according to the pre-selected memory mode.
C language provides 6 compilation modes, these 6 modes are: Tiny, Small, Medium, Compact, Large ) and giant mode (Huge). Users can choose according to their own program size and needs.
C language compilation mode-Micro mode (Tiny)--near pointer
In micro mode, the data and code in the program are placed in the same section, that is They do not exceed 64KB. In micro mode, the segment addresses of the code segment, stack segment and data segment are all the same, that is, CS=DS=SS=ES.
C language compilation mode—Small mode (Small)
In small mode, the code in the program is placed in the 64KB code segment, and the data is placed in the 64KB within the data segment. In small mode, the stack segment, additional data segment and data segment all point to the same address. They are combined into one, that is, DS=SS=ES. The pointers are all near. Generally, programs are compiled in small mode.
C language compilation mode—Medium mode (Medium)
In Medium mode, all data is placed in the 64KB data segment, so near is used in the data segment. The amount of code can be greater than 64KB (allowed to reach 1MB), so it can be used in different code segments (far remote pointers). Code modules from different source files are placed in different code sections.
C language compilation mode—Compact mode (Compact)
In compact mode, when the amount of data exceeds 64KB, it can be placed in multiple data segments. The data segments The pointer inside is (far). The amount of code does not exceed 64KB and is within one segment, so the pointers within the code segment are near. However, in this mode, static data still cannot exceed 64KB, and the heap uses far pointers to access. Code, static data, stack, and heap each have their own segments. There are only far piles, not near piles.
C language compilation mode—Large mode (Large)
In large mode, both code and data use far pointers, and both can reach 1MB. Static data, stack, and heap are the same as compact mode, and code is the same as medium mode. Static data remains the same as in compact mode and cannot exceed 64KB.
C language compilation mode—Huge mode (Huge)
In huge mode, both the code segment and the data segment use far pointers, and the code is distributed in different code segments , the data is also distributed in different data segments, they come from different source programs, and there is only one large stack. And the static data size is allowed to exceed 64KB.
Recommended tutorial: C language tutorial
The above is the detailed content of What kind of compiled language is c language?. For more information, please follow other related articles on the PHP Chinese website!