首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

预处理指令--宏定义

宏名(参数列表) 字符串 2.作用 •在编译预处理时,将源程序中所有宏名替换成字符串,并且将 字符串参数 宏名右边参数列表 参数替换....所以定义宏时,一般一个括号住字符串参数。...,把上面的第3行改成:#define D(a) 2*(a),注意右边a是有括号,第7行将被替换成int b = 2*(3+4);,输出结果14 •计算结果最好也括号起来 •下面定义一个宏P(a)...第6行代码被替换为: int b = (10) * (10) / (2) * (2); 简化之后:int b = 10 * (10 / 2) * 2;,最后变量b为:100 如果括号住计算结果 将上面的第...但是两者是有本质区别的: •1> 宏定义不涉及存储空间分配、参数类型匹配、参数传递、返回值问题 •2> 函数调用在程序运行时执行,宏替换只在编译预处理阶段进行。

1.4K70

简述C语言宏定义使用

我们仅需要改变一个宏定义,就可以改变整个程序中出现所有该常量值; 可以帮助避免前后不一致或键盘输入错误; 控制条件编译; 可以对C语法做小修改; 带参数宏 带参数仍要遵循上述规则,区别只是宏名后面紧跟括号中放置了参数...#define () 注意参数列表参数必须是有效c标识符,同时,分隔 算符优先级问题: #define COUNT(M) M*M int x=5; print(COUNT...),5+15+1=11,不是36 CUNT(++x)被替换成++x*++x即为6*7=42,不是想要6*6=36,连续前置自加加两次 解决办法: 括号将整个替换文本及每个参数括号起来print...不要使用宏来定义新类型名,应该使用typedef,否则容易造成错误。 给宏添加注释时请使用块注释(/* */),不要使用行注释。因为有些编译器可能会把宏后面的行注释理解为宏体一部分。...对于较长使用频率较高重复代码片段,建议使用函数或模板不要使用带参数宏定义;而对于较短重复代码片段,可以使用带参数宏定义,这不仅是出于类型安全考虑,而且也是优化与折衷体现。

1.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

PHP代码规范

1.1 统一 统一是指,对于同一个概念,程序中用同一种表示方法,比如对于供应商,既可以supplier,也可以provider,但是我们只能选定一个使用,至少一个项目中保持统一。...所有PHP文件必须一个空白行作为结束。 纯PHP代码文件必须省略最后 ?> 结束标签。 3.2.3. 行 行长度一定不能有硬性约束。...一个标准方法声明可参照以下范例,留意其括号、逗号、空格以及花括号位置。 3.4.4. 方法参数 参数列表,每个逗号后面必须要有一个空格,逗号前面一定不能有空格。...有默认值参数,必须放到参数列表末尾。 参数列表可以分列成多行,这样,包括第一个参数在内每个参数都必须单独成行。...参数列表以及变量列表可以分成多行,这样,包括第一个在内每个参数或变量都必须单独成行,列表括号与闭包开始花括号必须放在同一行。 以下几个例子,包含了参数和变量列表被分成多行多情况。

2.1K30

2018年9月9日正则表达式随堂记

连接元素序列、字符串、元组,集合,如果是字典的话,只能拼接关键字 上面的语法即:sep作为分隔符,将seq所有的元素合并成一个字符串 返回值:返回一个分隔符sep连接各个元素后生成字符串...写正则表达式前面为什么加r: Python中使用反斜杠(\)表示转义特殊字符,如果在你写字符串你不想让反斜杠发生转义,可以字符串 前面添加一个r,表示原始字符串,所以会在写正则表达式时候在前面加一个...带括号不带括号区别: 带括号的话是只返回括号里面的结果 如果不带括号是带前面和后边限制条件一起返回 %s传参可以让想拼接东西无缝拼接 如果网址或者字符串需要拼接的话可以+号直接拼接...findall()函数返回一个列表列表一个正则表达式是返回是是一个列表,里面只有一个 数据,当精准定位这个 长字符串多个目标数据时,正则表达式会自动识别里面包含几个目标数据,...然后将想要查询几个目标数据存储一个元组,再将多个目标数据也就是多个元组放在一个列表 []{}????

58840

shell脚本之特殊符号总结性梳理

如果档案名称 dot 开头,该档案就属特殊档案, ls 指令必须加上 -a 选项才会显示。除此之外, regularexpression 一个 dot 代表匹配一个字元。...'string' 单引号 (single quote) 被单引号内容,将被视为单一字串。引号内代表变数$符号,没有作用,也就是说,他被视为一般符号处理,防止任何变量替换。...如果你想在某些使用单个语句地方(比如在AND或OR列表)使用多条语句,你可以把它们括号{}来构造一个语句块。...前一个命令退出码; $- 显示shell使用的当前选项; $! 最后一个后台运行进程ID号。 6、$((...))语法:对括号表达式求值 代码: #!...$@ 列出所有的参数,各参数空格隔开 $*: 列出所有的参数,各参数环境变量IFS一个字符隔开 8、命令列表: AND列表 statement1 && statement2 && statement3

880100

SQL命令 WHERE(一)

描述 可选WHERE子句可以用于以下目的: 指定限制返回哪些数据值谓词。 指定两个表之间显式连接。 指定基表和另一个字段之间隐式连接。...子查询必须用圆括号起来。 WHERE子句可以使用=(内部连接)符号连接操作符指定两个表之间显式连接。 WHERE子句可以使用箭头语法(- >)操作符基表和来自另一个字段之间指定隐式连接。...这种转换发生在所有模式。 如果将定义为整数数据类型字段与Display模式下字符串值进行比较,则将该字符串解析为数值。 例如,与任何非数字字符串一样,空字符串(")被解析为数字0。...不正确格式指定时间数据将产生SQLCODE -147错误逻辑模式下,不正确格式指定日期或时间数据不会产生错误,但要么不返回数据,要么返回非预期数据。...离群值谓词条件 如果动态SQL查询WHERE子句选择了一个非空离群值,可以通过将离群值文字括号来显著提高性能。 这些双括号导致动态SQL优化时使用离群值选择性。

2.9K20

SQL命令 CREATE INDEX(一)

表名可以是限定(schema.table),也可以是非限定(Table)。未限定表名采用缺省模式名。 field-name - 用作索引基础一个或多个字段名。字段名必须用括号起来。...WITH DATA (datafield-name) - 可选—定义为索引数据属性一个或多个字段名。字段名必须用括号起来。多个字段名称逗号分隔。...如果指定SQL索引名称仅在标点字符方面与现有SQL索引名称不同, IRIS将最后一个字符替换为大写字母(“a”开头),创建唯一索引属性名称。...字段名称 必须指定至少一个索引字段名。 指定一个字段名或用逗号分隔字段名列表,这些字段名括号起来。 索引定义中允许并保留重复字段名。...指定字段必须在表定义,或者持久类超类定义。 (当然,所有的类都必须经过编译。) 指定不存在字段将产生SQLCODE -31错误

1.1K30

Objective-C预处理器指令与宏

预处理器是OC源文件编译过程一个部分,而且是第一个处理部分,预处理器预也由此可见。...括号封装头文件名时,会直接去用来搜索系统标准头文件默认目录搜索。由此可见,要用尖括号封装标准头文件,自己写OC类头文件,应该用双引号封装。...发生错误后,会抛出说"文件名"文件第11行有错误。后面跟着文件名是一个可选项,写了就可以消息显示,不写也没关系。...UITableView Delegate …… 这个#pragma mark指令可以Xcode 该文件方法列表插入标记,#pragma mark -就可以插入一个分隔线,后跟文字可以插入文字标签...如果函数有多个参数,逗号分隔开。 定义函数宏时候,有一个细节要注意,就是多对参数使用括号: #defind SQUARE(x) ((x) * (x)) 为什么这么麻烦?

67230

字典

一,使用字典 1.Python,字典放在花括号{}一些列键-值对表示。每个键都与一个值相关联,可以使用键来访问与之相关联值。可将任何Python对象用作字典值。...键和值之间冒号分隔,键-值对之间逗号分隔。 ? 输出: ? 2.访问字典值 2.1获取与键相关联值,可依次指定字典名和放在方括号键。 ? 输出: ?...添加键-值对,可依次指定字典名、括号键和相关联值。 ? 输出: ? 键-值对排列顺序与添加顺序可能不同。Python不关心键-值对添加顺序,只关心键和值之间关联关系。...4.先创建一个空字典 可先使用一对空括号定义一个字典,再分行添加各个键-值对。 ? 输出: ? 5.修改字典值 可依次指定字典名、括号键以及与该键相关联新值。 ? 输出: ?...最后一个键-值对后面也加上逗号,为以后在下一行添加键-值对做好准备。 ? 输出: ? 二,遍历字典 字典可用于各种方式存储信息,因此有多种遍历字典方式:可遍历字典所有键-值对,键或值。

3.4K10

C语言中宏定义

一个宏定义,编译器可以检测到绝大多数由多余符号所导致错误。但不幸是,编译器会将每一处使用这个宏地方标为错误不会直接找到错误根源——宏定义本身,因为宏定义已经被预处理器删除了。...这些参数可以替换列表根据需要出现任意次。 名字和左括号之间必须没有空格。如果有空格,预处理器会认为是定义一个简单宏,其中(x1,x2,…,xn)是替换列表一部分。...这种连接方式基础,多次使用这种宏形式,可以将它当作一个代码生成器,这样可以在一定程度上减少代码密度, 我们也可以将它理解为一种代码重用手段,间接地减少不小心所造成错误。 5....对于一个宏定义哪里加圆括号有两条规则要遵守: 首先,如果宏替换列表中有运算符,那么始终要将替换列表放在括号: #define TWO_PI (2*3.14159) 其次,如果宏有参数,...if后面有两个语句,这样是无法编译通过,那为什么非要do-while不是简单{}起来呢。

6.2K10

SQL中使用符号

XMLELEMENT,用于起标记名字符串。 "" 两个引号:本身是无效分隔标识符。分隔标识符内,文字引号字符转义序列。例如,"a""good""id"。...'' 双单引号字符:空字符串文字。字符串值中文字单引号字符转义序列。例如:‘can’‘t’ ( ) 圆括号(40,41):逗号分隔列表。将SQL函数参数起来。...将过程、方法或查询参数列表起来。大多数情况下,即使未提供参数或参数,也必须指定圆括号SELECT DISTINCT BY子句中,将用于选择唯一值项或项逗号分隔列表起来。...GRANT和REVOKE所有基本权限、所有表或所有当前定义用户。 %MATCHES 模式字符串多字符通配符。乘法算术运算符。 */ 星号斜杠:多行注释结束指示符。注释/*开头。...[ ] 左方括号和右方括号%Matches模式字符串,将匹配字符列表或范围起来。例如,[abc]或[a-m]。 \ 反斜杠(92):整数除法算术运算符。

4.4K20

一文读懂《Effective Java》第23条:不要在新代码中使用原生态类型

泛型出现前,集合读取每个对象都必须进行转换,如果不小心插入类型错误对象,运行时转换处理会报错。...参数化类型(parameterized type),构成格式是:类或接口名称 + 尖括号()将泛型形式参数实际类型参数列表起来。...每个泛型都定义类一个 原生态类型(raw type),即不带任何实际类型参数泛型名称。eg,List 对应原生态类型是List。原生态类型就相当于从类型声明删除了泛型信息。...原生类型与泛型类型区别 其一、使用原生态类型,会失掉泛型安全性和其他表述性方面的优势。 为什么继续允许使用原生态类型呢?...文字(class literal)必须使用原生态类型,规范不允许使用参数化类型(但允许数组类型和基本类型)[JLS,15.8.2] ClassLiteral: TypeName {[ ]

28620

PHP基本规则

双引号,变量(var)值会代入字符串,特殊转义字符也会被解析成特定单个字符,还有一些专门针对上述两项特性特殊转义,如"\ 数组,如果下标不是整型,而是字符串类型,必须使用单引号将下标起,正确写法为...不正确写法将导致PHP解析器认为key是一个常量,进而先判断常量是否存在,不存在时才key作为下标传入表达式,同时触发错误事件,产生一条Notice级错误。...函数定义左小括号与函数名之间无空格。 开始左大括号另起一行。 具有默认值参数应该位于参数列表后面。 函数定义与调用参数之间加入一个空格。 尽量避免函数起始缩进位置与结束缩进位置不同。...,条件语句括号前后都必须一个空格。...括号条件语句,操作符必须用空格分开,鼓励使用多重圆括号以便在复杂条件划分逻辑组合。 前花括号必须和条件语句同一行,后花括号单独最后一行,其中内容4个空格缩进。 if ($a !

5.1K50

Java 编程思想第十二章 - 容器持有对象

创建一个实例, add() 插入对象; get() 访问对象,此时需要使用索引,就像数组那样,但无需方括号。 size() 方法说明集合包含了多少个元素,所以不会不小心因数组越界引发错误。...然后将整个表达式括号起来,以便在调用 Apple id() 方法之前,强制执行转型。否则,将会产生语法错误。...尖括号起来类型参数(可能会有多个),指定了这个集合实例可以保存类型。 通过使用泛型,就可以在编译期防止错误类型对象放置到集合。 泛型版本示例 ?...Map 则由大括号住,每个键和值等号连接(键左侧,值右侧)。 ArrayList 和 LinkedList 都是 List 类型,从输出可以看出,它们都按插入顺序保存元素。...常用方法: 可以使用 contains() 方法确定对象是否列表 如果删除一个对象,可以将该对象引用传递给 remove() 方法 如果有一个对象引用,可以使用 indexOf() List

1.3K20

一起来学matlab-matlab学习笔记13函数 13_2 匿名函数

也许最近其带来一些负面消息对国内各个高校和业界影响很大。但是我们作为技术人员,更是奋发努力,拼搏上进,学好技术,才能师夷长技制夷,为中华之崛起读书!...如果匿名函数访问未在参数列表或主体显式引用任何变量或嵌套函数,则 MATLAB 会在您调用该函数时引发错误。...Jan-2012 15:11:47 但是不加上括号是一种错误写法,这会创建另一个函数句柄,并且不执行函数 d = t d = @() datestr(now) 不带输入函数 匿名函数多个输入需要显式指定...将多个输出变量括号。...如上面的代码所示,省略表达式空格,或将表达式括号,例如 注意空格和括号 @(y) (y + 10); @(x,y) (x.^2 + y + 10)}; 使用花括号访问元胞内容

84950

Groovy语法系列教程之集合(六)【完结】

Groovy集合包括列表(Lists)、数组(Arrays)、映射(Maps)三种类型。 7. 列表 Groovy使用逗号分隔列表括号起来)表示列表。...,然后将该列表分配给变量 该列表是Javajava.util.List接口一个实例 列表大小可以使用size()方法查询,我们列表包含3个元素 在上面的示例,我们使用了同类型列表,但您也可以创建包含不同类型列表...(从零开始计数) 使用负索引访问列表最后一个元素:-1是列表末尾一个元素 为列表第三个元素设置新值 使用<<运算符将元素添加到列表末尾 一次访问两个元素,返回包含这两个元素列表 使用范围来访问列表从开始到结束范围元素值...映射将键与值相关联,键和值之间冒号分隔,将每个键/值对之间逗号分隔,并将整个键和值括号。...person.containsKey('key') // 3 这次,我们括号将key变量起来,指示解析器传递变量不是定义字符串键 该映射确实包含name键 映射没有像以前一样包含key

1.5K41

Java8编程思想精粹(十)-容器(上)

创建一个实例, add() 插入对象;get() 访问对象,此时需要使用索引,就像数组那样,但无需方括号。size() 方法说明集合包含了多少个元素,所以不会不小心因数组越界引发错误。...然后将整个表达式括号起来,以便在调用 Apple id() 方法之前,强制执行转型。 否则,将会产生语法错误。...尖括号起来类型参数(可能会有多个),指定了这个集合实例可以保存类型。 通过使用泛型,就可以在编译期防止错误类型对象放置到集合。 泛型版本示例 ?...Map 则由大括号住,每个键和值等号连接(键左侧,值右侧)。 ArrayList 和 LinkedList 都是 List 类型,从输出可以看出,它们都按插入顺序保存元素。...常用方法 可以使用 contains() 方法确定对象是否列表 如果删除一个对象,可以将该对象引用传递给 remove() 方法 如果有一个对象引用,可以使用 indexOf() List

1.2K41

学校早这么教正则表达式,少走多少弯路!那个分组用法震到我了

通常,你应该始终单引号将正则表达式起来,以避免shell解释和扩展元字符。 文本匹配 grep命令最基本用法是文件搜索文字字符或字符序列。...方括号表达式 方括号表达式允许通过将一组字符括号[]来匹配它们。...例如,查找包含“accept”或“accent”行,可以使用以下表达式: grep 'acce[np]t' file.txt 如果方括号一个字符是脱字符^,则它匹配方括号任何单个字符。...范围表达式是通过指定连字符分隔范围一个最后一个字符来构造。例如,[a-a]相当于[abcde],[1-3]相当于[123]。...以下表达式匹配大写字母开头每一行: grep '^[A-Z]' file.txt grep还支持括号起来预定义字符类。下表显示了一些最常见字符类: [:alnum:] 字母数字字符。

2.4K30

Python 和 TOML:新最好朋友 (1) 了解TOML

更好选择是使用 pydantic,它利用类型注释在运行时进行数据验证。pydantic 一个优点是它内置了精确且有用错误消息。 还有一些工具可以利用 JSON 等格式现有架构验证。...所有这些键都可以不带引号地编写,如上面的示例所示。 TOML 文档必须 UTF-8 Unicode 编码。这为您提供了极大灵活性,可以代表各种值。 您也可以键中使用 Unicode。...TOML 字符串通常应使用双引号,并可以反斜杠(\)转义字符。还可以使用单引号指定字符串。单引号字符串称为文字字符串,其行为类似于 Python 原始字符串。...当用编程语言表示时,它们应存储哈希表数据结构 Python ,这将是一个字典或其他类似字典数据结构。组织键值对,您可以使用表。 TOML 支持三种不同表指定方式。...每个表都有一个标头,括号起来。 您还可以在上面的配置中找到点键表(dotted key tables)。

38310
领券