
1 end if 是if语句的结束,所有if条件在这里结束
2 exit sub是指,exit sub语句上面的语句到此结束,下面的语句重新开始
3 END SUB则是指整个过程到此结束,比如单击过程等
OS_ENTER_CRITICAL() 和 OS_EXIT_CRITICAL()可用于临界代码的使用中。
注意:所有的PEND调用(OSTimeDly()之类)之前,不能关掉中断,否则,应用程序崩溃。
OS_ENTER_CRITICAL 和OS_EXIT_CRITICAL 的实现方法有3种,取决于处理器的类型以及C编译器的特性。
实现方法1 OS_CRITICAL_METHOD == 1
这是最简单的方法,直接使用处理器指令关中断;
这种方式的缺点是: 如果在禁止中断的情况下,调用UCOSII功能函数,从函数返回时,中断可能会变成允许的!
实现方法2 OS_CRITICAL_METHOD == 2
执行OS_ENTER_CRITICAL时,先将中断状态保存到堆栈,再关中断;执行OS_EXIT_CRITICAL时,从堆栈中恢复原来的中断状态。
缺点,当用户使用的处理器有堆栈指针相对寻址模式时,可能出现严重错误。
实现方法3 OS_CRITICAL_METHOD == 3
某些编译器提供了扩展功能,用户可以得到当前处理器状态字的值,并将其保存在C函数局部变量之中。
相关临界代码如下
OS_CPU_SR cpu_sr
cpu_sr = get_processor_psw();
disable_interrupts();
/临界代码/
set_processor_psw();
以上是摘自网上的一个ucosII的学习笔记。可以参考回答你的问题。
我说下我自己的理解,因为编译环境和硬件环境的差异,所以ucosII进入临界段的时候关闭中断和出临界段的时候开中断的方式不同。但是无非就是 *** 作处理器的寄存器设置中断使能,失能或者保存当前中断状态寄存器的值到堆栈,或出栈。以上的三种方法是ucosii给出的三种方法。就是这么得来的。
1 end if 是if语句的结束,所有if条件在这里结束
2 exit sub是指,exit sub语句上面的语句到此结束,下面的语句重新开始
3 END SUB则是指整个过程到此结束,比如单击过程等
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
解析:
首先是一种宏,
写成:#IF
#DEFINE NEW DEBUG_NEW
#ENDIF
意思就是说:如果,就把new定义为debug_new,条件结束
相当于在编译之前,就可以确定对一些变量的设置
#endif只是结束条件的设定,这与vb中的语法很类似
感叹号在这里是否的意思所以 IF I % 5 != 0翻译过来就是如果i对5取余的余数不为0,则i自加1
DO WHILE i<=20 //i小于等于20时继续循环
i=i+2 //i加2
IF i%5!=0 //如果i对5取余的余数不为0
i=i+1 //i加1
LOOP //继续下一个循环, s=s+i不会执行
ENDIF //条件判断结束符号
s=s+i //s加上i
ENDDO //循环结束符号
#if ()
{语句##;}
#endif
如果()为真,也就是逻辑1,的话就编译下面的语句。如果()不为真。则不编译下面的语句。
和if else相仿。
!defined在一般情况下是这样用的吧:
#if !defined
{语句;}
#endif
它的意思是,如果在程序中没有对进行过#defined 的定义。则编译下面的语句,否则不编译。这中情况多用在需要经常移植的程序模块上,或是调试的时候用,比如说上面{}中的语句是调试时用的,但调试完成后不用它了,那么就可以用这个了。
这些在C语言的书中都有,条件编译。
是预处理指令,这些指令是预编译时执行的,为预编译如果xxx为真,编译A,假编译B,0为假不编译。
在编程中选择结构中最实用的就是if语句,打开编程软件C-FREE,Ctrl+N新建一个cpp。
输入图中的程序,该程序的作用是对输入的三个数字按大小排序。
注意图中if语句的格式:if(条件){条件成立的结果}。按F5执行程序。
输入你想要输入的三个数字,每按一个按一次回车键。
检查得出的结果是否符合从小到大排列,然后再重新仔细看下程序中if语句的意义,程序中X是起交换作用。
ifndef和endif是一对条件预编译语句,给你一个例子:
ifndef abc;//意思是如果没有定义abc这个特征符,则编译之后到endif之前的语句否则略过
//define abc;这条语句;
define abc;
endif;
比如有一段代码,有时需要根据需要不进行编译或进行编译,如以下代码:
ifdef abc;
某段代码;
endif;
意思就是如果程序中定义了abc特征符,则编译这里所说的"某段代码”,否则不进行编译,
如果程序是这样:
ifndef abc;
define abc;
endif;
ifdef abc;
某段代码;
endif;
则这里所说的“某段代码”肯定会被编译,因为在设计程序之初,可能需要根据某个条件来决定是否编译“某段代码”,但是后来发现,这样的条件编译已经没有必要,而且必须要编译“某段代码”,两种办法,一种是把ifdef abc和endif;去掉;另一种就像这里一样,在
ifdef abc;
某段代码;
endif;
之前加
ifndef abc;
define abc;
endif;
一般在一个应用开发体系中,功能的真正逻辑实现是以硬件层为基础,在驱动程序、功能层程序以及用户的应用程序中完成的。头文件的主要作用在于多个代码文件全局变量(函数)的重用、防止定义的冲突,对各个被调用函数给出一个描述,其本身不需要包含程序的逻辑实现代码,它只起描述性作用,用户程序只需要按照头文件中的接口声明来调用相关函数或变量,链接器会从库中寻找相应的实际定义代码。(egC++编译模式[1] )
从以上结构图来看,头文件是用户应用程序和函数库之间的桥梁和纽带。在整个软件中,头文件不是最重要的部分,但它是C语言家族中不可缺少的组成部分。编译时,编译器通过头文件找到对应的函数库,进而把已引用函数的实际内容导出来代替原有函数。进而在硬件层面实现功能。
从以上例子可以看出,头文件一般由四部分内容组成:(1)头文件开头处的版权和版本声明;(2)预处理块;(3)inline函数的定义;(4)函数和类结构声明等。在头文件中,用 ifndef/define/endif结构产生预处理块,用 #include 格式来引用库的头文件。头文件的这种结构,是利用C语言进行开发软件所通常具备的,属于公有知识。
以上就是关于VF里endif什么意思全部的内容,包括:VF里endif什么意思、#if OS_CRITICAL_METHOD == 3 OS_CPU_SR cpu_sr; #endif 是什么意思、VB中END IF是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)