Excel表格网

excel宏定义变量(宏定义定义变量)

来源:www.0djx.com  时间:2022-10-23 21:40   点击:79  编辑:表格网  手机版

1. 宏定义定义变量

define 后面指跟一个变量时,就是宏定义,头文件中为了防止重复包含时经常使用。格式为:#define xxx //比如:#define WIN32_LEAN_AND_MEAN //如果定义了宏WIN32_LEAN_AND_MEAN 这些代码#else //否则 那些代码#endif或者#define WIN32_LEAN_AND_MEAN //如果没有定义宏WIN32_LEAN_AND_MEAN 这些代码#else //否则 那些代码#endif

2. 简述宏定义

(1)宏是一种特定的编码,是一个或多个操作命令的集合。

(2)宏以动作为基本单位,一个宏命令能够完成一个操作动作。每一个宏命令是由动作名和操作参数组成的。

(3)宏可以是包含一个或多个宏命令的宏集合。若是由多个宏命令组成的宏,其操作动作的执行是按宏命令的排列顺序依次完成的。

(4)宏也可以定义成宏组,把多个宏保存在一个宏中。

(5)宏组实际上是一个冠有不同宏名的多个宏的集合。

1)如果直接运行宏组时,执行的只是第一个宏名所包含的所有宏命令;

2)若要执行其他宏名中的宏命令,则要通过触发控件的事件代码执行宏命令,以及通过宏命令间接执行宏命令。

3. 宏定义的变量是什么类型

子程序就在本文写,g90g0x30y20z50(call10)这是呼叫10程序号m30(sub10)子程序开头内容就不写了(ret)子程序结束!

4. 如何定义宏变量

mm是已经定义好的宏变量,&mm是引用这个宏变量,你可以去查一下宏变量的使用方法

5. 宏定义和静态变量

宏程序中变量分为三大类:局部变量,公共变量,系统变量。

6. 宏定义用法

1、枚举常量的定义

enum 枚举类型名{常量1,常量2,常量3,…};

例如定义一个星期的枚举常量:enum Week {Mon,Tue,Wed,…};

这就定义了一个新的数据类型:Week。

Week数据类型来源于int类型(默认)。

Week类型的数据只能有7种取值,它们是:SUNDAY,MONDAY,TUESDAY……SATURDAY。

其中SUNDAY = 0,MONDAY = 1……SATURDAY = 6。也就是说,第1个枚举值代表0,第2个枚举值代表1,这样依次递增1。

不过,也可以在定义时,直接指定某个或某些枚举值的数值。比如,对于中国人,可能对于用0表示星期日不是很好接受,不如用7来表示星期天。这样我们需要的个值就是 1,2,3,4,5,6,7。可以这样定义:

enum Week {MONDAY = 1,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY};

我们希望星期一仍然从1开始,枚举类型默认枚举值从0开始,所以我们直接指定MONDAY等于1,这样,TUESDAY就将等于2,直接到SUNDAY等于7。

枚举值,我们就称为枚举常量,因为它一经定义以后,就不可再改变,以下用法是错误的!

TUESDAY = 10; //错误!我们不能改变一个枚举值的数值。

用枚举常量来完成表达今天是星期三:

Week today = TUESDAY;

2、枚举常量和宏定义的区别与联系

宏和枚举的主要区别是作用的时间和存储形式不同。宏定义是在编译预处理阶段作用的,也就是在编译预处理时,就会进行宏替换,将程序中的所有宏名替换为所定义的常量名,而枚举则是在程序运行之后才起作用的。宏定义不分配内存空间,而枚举常量存储在数据的静态存储区中(这一点一定要注意)。宏只占用代码段的空间,而枚举除了占用代码段空间外,还耗费CPU资源。

但是不能说宏就一定比枚举好,因为你定义一大堆的宏总是非常的不方便的。

3、枚举类型与sizeof运算符

下面是我在VS2008中的程序:

#include “stdafx.h”

#include “stdio.h”

enum WEEK{Mon,Tue,Wed,Thu,Fri,San,Sun};

enum Boolean{True,fal};

int main(int argc, _TCHAR* argv[])

{undefined

char c;

WEEK today;

Boolean bol;

printf(“size of today is %d\n”,sizeof(today));

printf(“size of WEEK is %d\n”,sizeof(WEEK));

printf(“size of Boolean is %d\n”,sizeof(Boolean));

printf(“size of bol is %d\n”,sizeof(bol));

c=getchar();

return 0;

}

7. 定义宏变量的三种方式

简单来说:宏定义又称为宏代换、宏替换,简称“宏”。是C提供的三种预处理功能的其中一种。 说明:

1、宏名一般用大写 2、使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如:数组大小常用宏定义 3、预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。

4、宏定义末尾不加分号;

5、宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头。

6、可以用#undef命令终止宏定义的作用域 7、宏定义可以嵌套 8、字符串" "中永远不包含宏 9、宏定义不分配内存,变量定义分配内存。

8. 宏函数定义变量

一、变量

1、变量的表示

FANUC系统使用“#”表示变量,例如:#1、#100等。变量根据变量号可以分成四种类型,见下表。

变量号 变量类型 功能

#0 空变量 该变量总是空,任何值都不能赋给该变量

#1~#33

局部变量 局部变量只能用在宏程序中存储数据,例如,运算结果。当断电时,局部变量被初始化为空。调用宏程序时,自变量对局部变量赋值

#100~#109

#500~#999 公共变量 公共变量在不同的宏程序中的意义相同。当断电时,变量#500~#999的数据保存,即使断电也不会丢失

#1000以上 系统变量 系统变量用于读写CNC运行时的各种数据,例如,刀具当前位置和补偿

2、关于变量的说明

(1)变量引用时,为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在括号中,例如,GO X[#1+#2]F#3。式中X后的坐标什即是由#1、#2这两个变量组成的表达式来表示。

(2)表达式可以用于指定变量号。此时,表达式必须封闭在括号中,例如,#[#1+#2-12]。

注意:

1) 宏程序中,方括号用于封闭表达式,圆括号只表示注释内容,使用变量时必须注意,FANUC系统通过参数来切换圆括号和方括号。

2) 表达式可以表示变量号和变量。这两者并不一样,例如,X#[#1+#2]并不等于X[#1+#2]。

3) 当在程序中定义变量时,小数点可以省略。例如,当定义#1=123;变量#1的实际值是123.000。

4) 被引用变量的值根据地址的最小设定单位自动舍入。例如:G00X #1。

5) 改变引用的变量值的符号,要把负号放在“#”的前面。例如:G00X-#1。

6) 当变量值未定义时,这样的变量成为“空”变量。当引用未定义的变量时,变量及地址字都被忽略。例如,当变量#1的值是0,并且变量#2的值是空时,G00X#1Z#2的执行结果为G00X0。

7) 变量#0总是空变量。它不能写,只能读。

二、变量的运算

1、算术、逻辑运算和运算符(见下表)

功能 格式 备注

定义 #i=#j

加法 #i=#j+#k

减法 #i=#j-#k

乘法 #i=#j*#k

除法 #i=#j/#k

正弦 #i=SIN[#j] 角度以度指定。90°30’表示90.5°

反正弦 #i=ASIN[#j]

余弦 #i=COS[#j]

反余弦 #i=ACOS[#j]

正切 #i=TAN[#j]

反正切 #i=ATAN[#j]/[#k]

平方根 #i=SQRT[#j]

绝对值 #i=ABS[#j]

舍入 #i=ROUND[#j]

上取整 #i=FUP[#j]

下取整 #i=FIX[#j]

自然对数 #i=LN[#j]

指数函数 #i=EXP[#j]

或 #i=#jOR#k 逻辑运算一位一位地按二进制数执行

异或 #i=#jXOR#k

与 #i=#jEXP#k

从BCD转为BIN #i=BIN[#j] 用于与PMC的信号交换

从BIN转为BCD #i=BCD[#j]

2、关于运算符的说明

(1)角度单位

函数SIN、COS、ASIN、ACOS、TAN和ATAN的角度单位是度(°)

(2)上取整和下取整

CNC处理数值运算时,若操作后产生的整数绝对大于原数的绝对值时为上取整;若小于原数的绝对值为下取整。对于负数的处理应小心。

例如:假定#1=1.2,并且#2=-1.2。

当执行#3=FUP[#1]时,2.0赋给#3。

当执行#3=FIX[#1]时,1.0赋给#3。

当执行#3=FUP[#2]时 ,-2.0赋给#3。

当执行#3=FIX[#2]时,-1.0赋给#3。

(3)运算符的优先级

按优先的先后顺序依次是函数→乘和除运算(*、∕、AND、MOD)→加和减运算(+、﹣、OR、XOR)。

(4)括号嵌套

括号用于改变运算优先级。括号最多可以嵌套使用5级,包括函数内部使用的括号。

三、功能语句

1、无条件转移(GOTO)语句——转移到有顺序号n的程序段

格式:

GOTOn ;n指行号

例如:

GOTO1 转移至第一行

GOTO#10 转移至变量#10所决定的行

2、运算符(见下表)

运算符 含义 运算符 含义

EQ 等于(=) GE 大于或等于(≥)

NE 不等于(≠) LT 小于(<)

GT 大于(>) LE 小于或等于(≤)

3、条件转移(IF)语句

(1)IF[表达式] GOTOn

说明:如果指定的条件表达式满足时,转移到标有顺序号n的程序段;如果指定的条件表达式不32满足时,则执行下一个程序段。

(2)IF[表达式]THEN

说明:如果表达式满足,执行预先决定的宏程序语句,且只执行一个宏程序语句。例如,条件语句IF[#1EQ#2]THEN#3=0表示如果#1和#2的值相同,0赋给#3。

4、循环功能(WHILE)语句

格式:WHILE[表达式]DOm ;(m=1,2,3)

……

ENDm

说明:在WHILE后指定一个条件表达式,当指定条件满足时,执行从DO到END之间的程序;否则,转到END后的程序段。

提示:通过上述介绍,完全可以借助系统提供的二次开发功能定制出个性化的宏程序,例如,可以将例4—23中刀具轨迹路径定制在宏程序中,然后通过G65方式或直接用G代码调用.常见结构的宏程序定制是有效提高编程效率的手段之一.

9. 宏定义变量类型

常变量简介:在C语言中常变量就是用const定义的变量,常变量的值是不能被改写的,只能使用不能改写,除非是用友原函数进行调用。其实相当于用#define定义的变量,不过在c++中用const定义。在c中一般用#define来定义。常变量定义:第一种, 使用#define 宏定义,比如想定义一个值为10的常量,那么:#define value 10value就是一个值为10的宏,以后只要遇到value 系统就将value 替换为10,注意宏定义后面不能有分号。第二种,采用const 关键字 把一个变量声明转换为常量声明。即:const int value = 10;value 是一个只读值,你不能再修改value的值。第三种方法,采用枚举变量的功能,声明一个枚举变量:enum name { x =1,y=2,z=3};其中的x,y,z就是个常量了,当然里面的值等于多少是你自己确定的,如果不显示声明,就是默认从0开始的。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片