`
ychw365
  • 浏览: 55137 次
  • 性别: Icon_minigender_1
  • 来自: 长春
最近访客 更多访客>>
社区版块
存档分类
最新评论

宏定义与空格

阅读更多

宏定义与空格


在宏定义中,如果宏有多行,每行的后面必须有\,但是切忌\后不能有空格。

下面的正确实例:
#include "stdafx.h"
#include 
<iostream>
#include 
<string>

const std::string c_A = "A";
const std::string c_B = "B";

#define INSERT_FUNCTION(NAME) \
inline 
void \
Insert ## NAME(
const std::string& valuestr) \
{ \
    std::cout 
<< c_ ## NAME << valuestr << std::endl; \
}
 \

INSERT_FUNCTION(A)
INSERT_FUNCTION(B)

#undef INSERT_FUNCTION

int _tmain(int argc, _TCHAR* argv[])
{
    InsertA(
"value:i am a!");
    InsertB(
"value:i am b!");
    
return 0;
}

在vs2005中,使用ctrl+R+w开打开和关闭空格显示,在打开空格显示后你就可以看到你的\后面到底是不是多了空格
分享到:
评论

相关推荐

    C++宏定义说明(详解)

    2. **注意命名约定**:为了避免与标准库或其他用户自定义标识符冲突,宏定义的名称通常采用大写字母,并使用下划线分隔单词。 3. **考虑宏的可见性**:避免在头文件中定义全局宏,因为这可能会导致不同文件中的宏...

    汇编语言的宏定义方法

    ### 汇编语言中的宏定义方法 #### 宏定义概念 在汇编语言中,宏定义是一种预先定义好的指令序列,它可以帮助程序员减少重复代码的编写,提高代码的可读性和可维护性。宏定义通常由用户自定义,并通过一个特定的名字...

    ##与#在宏定义中的作用

    在C语言中,宏定义是一种预处理指令,用于在编译之前替换文本。`##`和`#`是两个特殊的运算符,它们在宏定义中有着特定的用途。 `##`被称为连接运算符或记号粘贴操作符。它的主要作用是将两个标识符连接成一个新的...

    Source Insight3.5宏定义和 快捷键设置

    它提供了一种高效的方式来浏览、理解和编辑源代码,支持多种编程语言,并且具有丰富的自定义功能,包括宏定义和快捷键设置。 **宏定义** 在编程环境中是一个重要的概念,它允许用户预定义代码片段,通过一个简短的...

    宏定义的作用.docx

    - 宏名与参数之间不应有空格。 - 宏替换只是简单的文本替换,不做计算或表达式求解。 - 宏定义没有类型检查,宏的实际参数和形式参数之间不存在类型转换。 - 宏调用不涉及运行时内存分配,而函数调用会分配内存...

    C语言宏定义技巧大全

    在C语言中,宏定义是预处理器(Preprocessor)的一项重要功能,它允许程序员创建简短的别名或代码块,以实现代码的复用和简化。宏定义通过`#define`关键字进行,它们并不涉及实际的运行时计算,而是在编译阶段进行...

    C语言宏定义使用分析

    编译器在处理时宏定义时,首先从“#define”后第一个空格开始读取字符串,直到遇见下一个空格为止,两个空格之间的字符串为“宏名称”,确定好“宏名称”之后,本行的所有其他字符串都为“宏字符串”。图示:#define...

    ACM基础模板(宏定义、快读快写、快速幂、gcd、组合数与Lucas定理)(csdn)————程序.pdf

    这篇文档主要介绍了ACM竞赛中常用的编程技巧和算法模板,包括宏定义、快速输入输出、快速幂运算、最大公约数(GCD)、最小公倍数(LCM)、扩展欧几里得算法、以及组合数计算与Lucas定理。下面我们将逐一详细讲解这些知识...

    常用C/C++预处理指令详解

    预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。...在带参数的宏定义,宏名和参数的括号间不能有空格。  宏定义不分配内存,变量定义分配内存。  宏展开不占运行时间,

    详解C语言中的#define宏定义命令用法

    4. 宏定义与注释:不能用宏定义注释符号,因为注释会在宏展开之前被处理。 5. `#undef`命令:可以使用`#undef`撤销宏定义,之后的代码将无法使用该宏,除非重新定义。宏定义的覆盖遵循后定义覆盖前定义的原则。 6. ...

    C程序设计实践教程中PPT课件.pptx

    ### C程序设计中的宏定义详解 #### 一、概述 在C程序设计中,宏定义是一种重要的编程技术,主要用于简化代码编写过程并提高程序的可读性和可维护性。宏定义通过预处理命令`#define`来实现,它可以分为两大类:不带...

    编译原理 实验一 (去掉空格 回车 注释)

    在实验过程中,学生可能会遇到一些挑战,比如正确识别和处理嵌套注释,或者在宏定义中处理空格和回车的问题。这些都要求对编译原理有深入的理解,同时也锻炼了问题解决能力。通过这样的实践,学习者能更好地掌握...

    汇编语言统计字符串中空格数

    1. **宏(Macro)**:`lab2dispmsg` 是一个宏定义,用于方便地显示消息。在汇编语言中,宏允许程序员定义可重用的代码块,这里用于输出字符串到控制台。 2. **数据段(Data Segment)**:`.data` 段用来存储程序中...

    C语言第9章预处理PPT学习教案.pptx

    - 定义有参宏时,注意宏名与左括号间不应有空格,否则可能被误解析为无参宏。 - 宏展开不涉及计算,仅是文本替换,因此`SQUARE(2+1)`不会计算成`3*3`,而是替换为`2+1*2+1`。 通过宏定义,程序员能够创建自定义的...

    C语言第9章预处理PPT课件.pptx

    C语言的预处理是编译过程的第一步,主要涉及宏定义、条件编译等操作。宏定义是预处理的核心功能之一,它允许程序员创建自定义的标识符来代表常量或复杂的表达式,以提高代码的可读性和复用性。 1. **不带参数的宏...

    C程序设计实践教程中PPT学习教案.pptx

    《C程序设计实践教程》中的PPT学习教案主要讲解了C语言中的宏定义这一关键概念。宏定义是C语言预处理阶段的一种特性,它允许程序员用一个标识符(宏名)来代表一个字符串或者表达式,以便在编译时进行文本替换。 1....

    c++ 学习 精华集萃

    ### C++学习精华集萃——深入理解宏定义 #### 前言 在C++编程中,宏定义是一种非常实用的工具,它可以帮助程序员在编译前进行文本替换,从而达到简化代码、提高效率的目的。本文将从带有参数的宏定义入手,探讨宏...

    VC宏Macros收集整理

    "VC宏Macros收集整理" 提供了一系列的宏文件,这些文件包含了各种实用的宏定义,可以提升开发效率并优化代码质量。下面将对这些知识点进行详细解释。 首先,了解什么是宏。在C/C++中,宏是一种预处理器指令,它允许...

    C语言程序设计第10章 预编译处理 (0).ppt

    宏名和字符串之间需要有空格,宏定义后的字符串不应跟随分号。例如: ```c #define PI 3.14159 ``` 在程序中,`PI`将被替换为其定义的数值。宏名最好用大写字母表示以区别于变量。 10.1.2 有参宏定义 有参宏定义...

Global site tag (gtag.js) - Google Analytics