- 浏览: 1524362 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (516)
- Java (49)
- Java/Struts 2.0 (25)
- Java/Spring、Spring MVC (11)
- Java/Quartz (3)
- Java/Lucene (6)
- Java/Hibernate (19)
- Java/openJPA (7)
- Java/DWR (7)
- Java/Security、Spring Security/OAuth2 (6)
- Java/Threading (9)
- Java/XML (22)
- java/design pattern (4)
- Android (2)
- JavaScript (46)
- jquery (3)
- DB/MySQL (23)
- DB/Oracle (16)
- PHP (25)
- CSS (20)
- Linux (38)
- C/C++、DLL、Makefile、VC++ (31)
- 正则 (9)
- Eclipse (4)
- 安全、网络等概念 (25)
- 集群 (7)
- 网页 (5)
- 视频\音频 (1)
- HTML (6)
- 计算机数学/算法 (3)
- Virtualbox (1)
- LDAP (2)
- 数据挖掘 (6)
- 工具破解 (1)
- 其他 (13)
- Mail (1)
- 药材 (3)
- 游戏 (2)
- hadoop (13)
- 压力测试 (3)
- 设计模式 (3)
- java/Swing (2)
- 缓存/Memcache (0)
- 缓存/Redis (1)
- OSGI (2)
- OSGI/Gemini (0)
- 文档写作 (0)
- java/Servlet (3)
- MQ/RabbitMQ (2)
- MQ/RocketMQ (0)
- MQ/Kafka (1)
- maven (0)
- SYS/linux (1)
- cache/redis (1)
- DB/Mongodb (2)
- nginx (1)
- postman (1)
- 操作系统/ubuntu (1)
- golang (1)
- dubbo (1)
- 技术管理岗位 (0)
- mybatis-plus (0)
最新评论
-
pgx89112:
大神,请赐我一份这个示例的项目代码吧,万分感谢,1530259 ...
spring的rabbitmq配置 -
string2020:
不使用增强器 怎么弄?
OpenJPA的增强器 -
孟江波:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!4 ...
spring的rabbitmq配置 -
eachgray:
...
spring-data-redis配置事务 -
qljoeli:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!1 ...
spring的rabbitmq配置
#pragma指令对每个编译器给出了一个方法,在保持与c,c++语言完全兼容的情况下,
给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且
对每个编译器都是不同的。
#pragma#pragma是语言符号字符串。它是给出特有编译器指令和参量的字符序列。在
pragma后,可以编写翻译器作为预处理语言符号分析的任何文本。#pragma从属于宏扩展。
#pragma后跟不同的编译指令可实现不同的功能。这里列出它的几个用法:
1.#pragma comment(comment-type,[string])可将一个注视记录放入一个对象文件或可执
行文件中。
2.#pragma init_seg({complier/lib/user/ "section-name "[, "func-name]]})
该指令制定一个影响启动代码实行顺序的关键字或代码段。
3.#pragma pointers_to_members
该指令制定一个类成员的指针能否在其相关定义之前被说明,且用于控制该指针尺寸和
解释该指针需要的代码。
4..#pragma pack([n)]
该指令制定结构和联合成员的紧凑对齐。
#pragma TRAP_PROC
interrupt void isrTIM1(void)
{
// 17KHz 59us 加档肺 牢磐反飘
zTimer_++;
COP_REFRESH; // {asm sta aCOPCTL;}
TIM1_FLAG_CLEAR; // READ_REG(aT1SC) // TOF1 甫 Clear
}
Pragma是什么?
Pragma是什么?
翻译:SkyJacker
后附英文原文。
(译者注:
一句话,pragma就是为了让编译器编译出的C或C++程序与机器硬件和操作系统保持完全兼容而定义的宏扩展,
#pragma是和特定编译器相关的。)
两部分:
1.Pragma说明;
2.Pragma的语法。
一、Pragma说明(Directives)
C和C++程序的每次执行都支持其所在的主机或操作系统所具有的一些独特的特点。
一些程序,例如,需要精确控制数据存放的内存区域或控制某个函数接收的参数。
#pragma指示为编译器提供了一种在不同机器和操作系统上编译以保持C和C++完全兼容的方法。?
Pragmas是由机器和相关的操作系统定义的,通常对每个编译器来说是不同的。
二、语法(Syntax)
#pragma token-string(特征字符串)
特征字符串是一连串的字符,就是要给一个特定编译器提供说明和编译意见。
符号(#)必须是pragma所在那一行的第一个非空格字符;
#号和pragma之间可以有任意个空格符。
在#pragma之后,是可以被编译器解析的预处理特征字符。
一般认为,#pragma属于宏扩展。
如果编译器发现不认识的pragma,会提出警告,但继续编译下去。
Pragmas可以用在条件声明上,提供最新的功能性的预处理程序,或者提供给编译器定义执行的信息。
C和C++编译器认可如下pragmas:
alloc_text
comment //注释
init_seg1
optimize //最优化
auto_inline
component //组成部件
inline_depth
pack //包
bss_seg
data_seg
inline_recursion //内嵌递归
pointers_to_members1
check_stack
function
intrinsic //内在的
setlocale
code_seg
hdrstop
message
vtordisp1
const_seg
include_alias
once
warning
这是MSDN的一篇文章,原作者曾经想使用
#pragma pack(1) // 用GCC在MIPS平台上将结构体成员结合到一块连续的内存块,但是没有做到。
在linux环境下使用intel-based GCC,#pragma pack(1)可以工作。
建议参考具体编译器的文档,在里面应该有pragma的说明。
---------------------------------------原文-------------------------------------------
Pragma Directives
Each implementation of C and C++ supports some features unique to its host machine or operating system.
Some programs, for instance, need to exercise precise control over the memory areas where data is placed or
to control the way certain functions receive parameters.
The #pragma directives offer a way for each compiler
to offer machine- and operating-system-specific features
while retaining overall compatibility with the C and C++
languages. Pragmas are machine- or operating-system-specific by definition,
and are usually different for every compiler.
Syntax
#pragma token-string
The token-string is a series of characters that gives a specific compiler instruction and arguments,
if any.
The number sign (#) must be the first non-white-space character on the line containing the pragma;
white-space characters can separate the number sign and the word pragma.
Following #pragma, write any text that the translator can parse as preprocessing tokens.
The argument to #pragma is subject to macro expansion.
If the compiler finds a pragma it does not recognize, it issues a warning, but compilation continues.
Pragmas can be used in conditional statements, to provide new preprocessor functionality,
or to provide implementation-defined information to the compiler.
The C and C++ compilers recognize the following pragmas:
alloc_text comment init_seg1 optimize
auto_inline component inline_depth pack
bss_seg data_seg inline_recursion pointers_to_members1
check_stack function intrinsic setlocale
code_seg hdrstop message vtordisp1
const_seg include_alias once warning
This is an article from MSDN, I ever wanted to use
#pragma pack(1) //which can combine structure members to one continuous memory block
on MIPS platform using GCC, but it doesn't work.
See the compiler's document, it should be illustrated there.
Under linux env using intel-based GCC, it works.
发表评论
-
数据结构与算法分析(C语言描述)源代码与答案
2009-12-14 11:44 6714数据结构与算法分析(C语言描述)(第二版) Mark A ... -
A new Michael Jackson song
2009-10-12 16:48 948<!-- [if gte mso 9]><x ... -
makefile 大全
2009-02-24 07:37 1178http://chenl.blogbus.com/logs ... -
Linux_Unix环境下的Make和Makefile详解
2009-02-24 07:35 1319无论是在 Linux 还是在 U ... -
C++的11个注意要点
2009-02-24 07:33 1029C++ 的 11 个注意要点 ... -
运用autoconf和automake自动生成Makefile实例讲解
2009-02-24 07:30 4067运用 autoconf 和 automake ... -
makefile详解(6)
2009-02-24 07:23 1783makefile 详解( 6 ) ... -
makefile详解(5)
2009-02-24 07:22 1674<!-- --><!-- -->& ... -
makefile详解(4)
2009-02-24 07:21 1420<!-- --><!-- -->& ... -
makefile详解(3)
2009-02-24 07:20 1636<!-- --><!-- --> & ... -
makefile详解(2)
2009-02-24 07:19 1331<!-- --><!-- --> & ... -
makefile详解(1)
2009-02-24 07:18 1505makefile 详解 ... -
VC++动态链接库(DLL)编程深入浅出(二) Win32 Dynamic-Link Library
2008-08-19 14:23 8023上节给大家介绍了静态链接库与库的调试与查看( 动态链 ... -
VC++动态链接库(DLL)编程深入浅出(一) Win32 Static Library
2008-08-19 14:13 7114http://www.pconline.com.cn/pced ... -
VC++常用数据类型及其操作详解
2008-08-18 23:43 1383http://blog.csdn.net/flxyzsby/a ... -
VC++数据类型转换大全
2008-08-18 23:25 64097int i = 100; long l = 2001; f ... -
DLL导出变量
2008-08-18 16:20 2070DLL定义的全局变量可以被调用进程访问;DLL也可以访问调用进 ... -
DLL导出类
2008-08-18 16:20 2627DLL中定义的类可以在应用工程中使用。 下面的例子里,我 ... -
MFC规则DLL 概述
2008-08-18 16:19 2820MFC规则DLL的概念体现在两方面: (1) 它是MFC ... -
MFC规则DLL的创建
2008-08-18 16:18 1852我们来一步步讲述使用MFC向导创建MFC规则DLL的过程,首先 ...
相关推荐
在所有的预处理指令中,#Pragma...#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。
### #pragma 指令用法汇总与解析 在 C++ 编程中,`#pragma` 是一种预处理器指令,用于向编译器提供非标准的信息或指示。`#pragma` 不是语言的一部分,而是编译器扩展,主要用于控制编译器的行为,例如调整警告级别...
- 尽管#pragma指令为编译器提供了一种灵活的编译控制方式,但开发者在跨平台开发时需要注意,过多地依赖特定编译器的#pragma指令可能会降低源代码的可移植性。 - 在跨平台项目中,推荐尽可能使用标准C/C++语言特性,...
在这些预处理指令中,`#include` 和 `#pragma` 是两个最常用的指令,本文将详细介绍它们的含义和使用方法。 #include 指令 `#include` 指令是 C++ 中最基本的预处理指令,用于引入头文件(Header File)。头文件是...
在深入探讨C和C++编程的世界中,#pragma指令扮演着一个关键角色,尤其在预处理阶段。虽然它不是语言标准的一部分,而是编译器特性的延伸,但它提供了强大的工具,使开发者能够更精细地控制编译过程,无需直接修改...
#### 二、常用#pragma指令详解 ##### 1. `#pragma message` `#pragma message`指令通常用于在编译时输出一条信息到编译器的消息窗口。例如: ```c++ #Pragmamessage("这是一条消息") ``` 这条指令将在编译时向输出...
### #pragma指令详解 在软件开发领域,尤其是C/C++编程中,`#pragma`指令是一种预处理器指令,被广泛用于向编译器传递特定的信息或控制编译过程中的某些行为。它允许开发者以编译器特定的方式进行优化、调试或配置...
### #pragma 指令详解 #### 一、概述 `#pragma` 是 C 和 C++ 编译器提供的一种预处理指令,它允许程序员指定特定于编译器的行为,而不影响程序的源代码可移植性。通过 `#pragma` 指令,开发者可以控制诸如内存布局...
### #pragma预处理指令用法详解 #### 一、概述 在C/C++编程中,预处理指令(Preprocessor Directives)是一种特殊的语句,它们在编译之前由预处理器处理。`#pragma`指令是预处理指令的一种,用于指示编译器执行...
pragma指令简介 一、 message 参数。 1 二、 另一个使用得比较多的#pragma参数是code_seg。格式如: 2 三、 #pragma once (比较常用) 3 四、 #pragma hdrstop表示预编译头文件到此为止,后面的头文件不进行预编译。...
`#pragma` 是 C 和 C++ 编程语言中的一个预处理指令,用于控制编译器的行为。它允许程序员在不违反语言标准的情况下利用特定编译器的功能。`#pragma` 的语法灵活多变,支持多种参数,这些参数通常用于调整编译过程中...
`#pragma`指令作为一种非标准但广泛支持的语言扩展特性,被众多编译器(如Microsoft Visual C++、GCC等)所采纳,用于向编译器提供额外的信息或控制编译行为。本文将详细介绍几种常用的`#pragma`指令,并结合实例...
`#pragma` 指令是 C 和 C++ 编译器中的一种预处理指令,它可以用来设定编译器的状态或者指示编译器完成一些特定的动作。下面是 `#pragma` 指令的一些常用参数和用法: (1) `message` 参数 `message` 参数能够在...
在编程领域中,`#pragma` 是一个非常有用的预处理器指令,它允许程序员直接向编译器传递特定的信息或控制编译过程中的某些特性。下面,我们将深入探讨几个常见的 `#pragma` 指令,并详细解释它们的功能与用途。 ###...
`#pragma`是C语言中的一种预处理器指令,用于向编译器提供特定的命令或信息,以控制编译过程。在嵌入式系统开发,尤其是针对特定微控制器(MCU)的编程中,`#pragma`指令尤其有用。本文将详细介绍其中两个常见的`#...
### 预处理指令 #pragma 的深入解析 在C/C++编程中,预处理指令(Preprocessor Directives)是编译前的一种特殊机制,用于控制编译器的行为。其中,`#pragma` 是一种非常强大的预处理指令,它可以用来设置编译器的...