字母开头。
公认的命名规则就有很多种,并且编程代码具体到公司时,公司也有自己特殊的命名规则。所以最终结论是:没有哪一种命名规则能让所有程序员都认可。我们可以根据个人喜好学习公认命名规则,再根据实际情况灵活变通。
这些指令是编程师傅为自己程序运行创造的条件,如我们机床可以是公制数据,也可以是英制数据,如果我的程序是英制数据编的是不是要首先指令机床按照英制尺寸来走啊?还有我们的刀具是有刀尖圆弧的,在做锥度和做平面是有副作用的,那么在没有特别的情况是需要取消刀尖半径补偿的,如果上一个人用了未取消,后一个人用了其他程序也没取消就会导致产品报废,所以,有心的程序员都会在程序前加上自己程序运行需要的环境指令。防止万一出问题。
程序编写的开头语句或者主程序应完成的任务如下:
①对应用程序的环境进行初始化,如打开数据库、声明变量、设置SET等。
②显示初始的用户界面
③控制事件循环
例如,一个图书管理的主程序文件如下:
set directory to curdir() &&将程序的资源路径设为当前程序所在的文件夹
set sysmenu off &&不显示系统菜单
set talk off
set safety off
set deleted on &&不显示被逻辑删除的记录
set century on
set date to ymd
set mark to ‘’
set status bar off &&不显示VFP状态条
on shutdown quit &&若没有这句,可能不能退出VFP。
clear
MODIFY WINDOW SCREEN TITLE '图书管理系统' NOCLOSE
_SCREENCONTROLBOX=F &&_SCREEN是系统内存变量(也就是VFP主窗口对象)
_SCREENWINDOWSTATE=2
DO FORM 登录界面scx
看出来还是初学者的
我觉得你应该先去C语言的书看下的
刚学么多看点书
好像有本C语言程序设计蛮好的
顺便解释下上面的
#include "stdioh"
#include "conioh"
就是包含的头文件,下面的程序中要用到的
还有一种就是
#include <stdioh>
#include <conioh>
稍微有一点点区别的
希望能学好C语言哈
你的串号我已经记下,采纳后我会帮你制作
#include是头文件 int main(void)是主函数 头文件里面包括了很多函数,方便你调用,没有相应头文件你就没办法使用相应的函数 主函数是程序的入口,就是告诉计算机从这里开始执行代码
个人理解:
宏定义,这里主要是替代,用简写代替全称。以后出现的uchar都指unsigned char 用自定义的uchar表示无符号字符型。注意书写格式,末尾不带分号。
从函数角度考虑:对于void delay()和 uchar int(),前者不带返回值,当调用时,执行该段函数;后者带有返回值(return语句),当调用时,执行该函数,并得出该函数执行后对应的一个返回值。
小弟只有10年VC++经验,帮你解读一下哦: 满意的话麻烦给我分
如下代码是为了实现: 接收串口过来的数据! 首先初始化一个泛型类型接受容器, 接收串口接口发来的数据,然后显示在界面上的edit控件上!
VARIANT variant_inp; 用VARIANT 泛型变量类型 定义一个数组变量variant_inp; 泛型就是任何类型都可以放进去的意思 作为缓冲池使用很适合
COleSafeArray safearray_inp; 用COleSafeArray用OLE安全数据容器类 定义一个对象名字是 safearray inp 因为VARIANT虽然可以放任何类型数据到这个数组中,但该类型没有丰富的处理成员函数,说白了他是结构体不是类, 所以 需要做个转换, 转为COleSafeArray类型的数组类即可 他具有非常丰富的成员函数
那么, 你会问为什么不直接让safearray_inp=m_ctrlCommGetInput(); 读缓冲区,而要经过一个中间变量呢?
variant_inp=m_ctrlCommGetInput(); 读缓冲区
safearray_inp=variant_inp; VARIANT转换成COleSafeArray型变量
VARIANT和COleSafeArray 是什么关系呢
原因是:
这中间有调用不同的重载=运算符,m_ctrlCommGetInput(); 的数据可以转化为variant_inp,有默认的转化方式,而safearray_inp=variant_inp则是另一个转化方式,如果直接转,可能数据不对。
VARIANT和COleSafeArray 一个是结构体,一个是类,各自的数据构造不一样。
long k=0; 初始化一个长整型变量 k=0;
int len; 定义长度len,整数型
BYTE rxdata[2048]; 定义接受数据的数组,2k大小,2048字节 为BYTE类型,也即unsigned char类型
CString strtemp; 定义一个CString类型的字符串strtemp;
if(m_ctrlCommGetCommEvent()) 如果控制通信对象m_ctlComm有get的事件发生,
{
------------------------
这里应该加switch(ret) , 将上面getcommevent赋值给ret
case 2: 事件值为2表示接收缓冲区内有字符
{
variant_inp=m_ctrlCommGetInput(); 控制通信器对象得到输入数据流 如果GetCommEvent返回2,说明有字符到达了, 接收缓冲区内有字符
safearray_inp=variant_inp; 将variant inp转换为COleSafeArray 类型,付给safearry inp 因为COleSafeArray提供了丰富的函数处理符合我们的需要
len=safearray_inpGetOneDimSize(); 获取输入安全数组的长度len
for(k=0;k<len;k++) 做个循环,
{
safearray_inpGetElement(&k,rxdata+k); 从输入的安全数组到rxdata进行数据拷贝 一次一个字节拷贝
}
for(k=0;k<len;k++) 做个循环 读取len长度的所有字节
{
BYTE bt=(char)(rxdata+k); 内存 rxdata 起始地址+k字节偏移的指针 取值,得到 一个字节
strtempFormat("%c",bt); strtemp赋值为bt,也就是一个字符
m_strEditRXData+=strtemp; m_strEdit这个CEdit控件显示一直加长
}
}
UpdateData(FALSE); 将内存变量数据更新到界面
====================
参考:
VARIANT
C++、BASIC、Java、Pascal、Script计算机语言多种多样,而它们各自又都有自己的数据类型,COM
产生目的,其中之一就是要跨语言(注3)。而 VARIANT
数据类型就具有跨语言的特性,同时它可以表示(存储)任意类型的数据。从C语言的角度来讲,VARIANT
其实是一个结构,结构中用一个域(vt)表示------该变量到底表示的是什么类型数据,同时真正的数据则存贮在 union
空间中。结构的定义太长了(虽然长,但其实很简单)大家去看 MSDN 的描述吧,这里给出如何使用的简单示例:
学生:我想用 VARIANT 表示一个4字节长的整数,如何做?
老师:VARIANT v; vvt=VT_I4; vlVal=100;
学生:我想用 VARIANT 表示布尔值“真”,如何做?
老师:VARIANT v; vvt=VT_BOOL; vboolVal=VARIANT_TRUE;
学生:这么麻烦?我能不能 vboolVal=true; 这样写?
老师:不可以!因为
类型
字节长度
假值
真值
bool
1(char)
0(false)
1(true)
BOOL
4(int)
0(FALSE)
1(TRUE)
VT_BOOL
2(short int)
0(VARIANT_FALSE)
-1(VARIANT_TRUE)
所以如果你 vboolVal=true 这样赋值,那么将来 if(VARIANT_TRUE==vboolVal)
的时候会出问题(-1 !=
1)。但是你注意观察,任何布尔类型的“假”都是0,因此作为一个好习惯,在做布尔判断的时候,不要和“真值”相比较,而要与“假值”做比较。
学生:谢谢老师,你太牛了。我对老师的敬仰如滔滔江水,连绵不绝
学生:我想用 VARIANT 保存字符串,如何做?
老师:VARIANT v; vvt=VT_BSTR; vbstrVal=SysAllocString(L"Hello,你好");
学生:哦我明白了。可是这么 *** 作真够麻烦的,有没有简单一些的方法?
老师:有呀,你可以使用现成的包装类 CComVariant、COleVariant、_variant_t。比如上面三个问题就可以这样书写:CComVariant v1(100),v2(true),v3("Hello,你好"); 简单了吧?!(注4)
学生:老师,我再问最后一个问题,我如何用 VARIANT 保存一个数组?
老师:这个问题很复杂,我现在不能告诉你,我现在告诉你怕你印象不深(注5)
学生:~!@#$%^&()晕!
VARIANT 数据类型在文件OAIDLIDL中定义如下:
struct tagVARIANT {
union {
struct __tagVARIANT {
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
union {
ULONGLONG ullVal;
LONGLONG llVal;
LONG lVal;
BYTE bVal;
SHORT iVal;
FLOAT fltVal;
DOUBLE dblVal;
VARIANT_BOOL boolVal;
_VARIANT_BOOL bool;
SCODE scode;
CY cyVal;
DATE date;
BSTR bstrVal;
IUnknown punkVal;
IDispatch pdispVal;
SAFEARRAY parray;
BYTE pbVal;
SHORT piVal;
LONG plVal;
LONGLONG pllVal;
FLOAT pfltVal;
DOUBLE pdblVal;
VARIANT_BOOL pboolVal;
_VARIANT_BOOL pbool;
SCODE pscode;
CY pcyVal;
DATE pdate;
BSTR pbstrVal;
IUnknown ppunkVal;
IDispatch ppdispVal;
SAFEARRAY pparray;
VARIANT pvarVal;
PVOID byref;
CHAR cVal;
USHORT uiVal;
ULONG ulVal;
INT intVal;
UINT uintVal;
DECIMAL pdecVal;
CHAR pcVal;
USHORT puiVal;
ULONG pulVal;
ULONGLONG pullVal;
INT pintVal;
UINT puintVal;
struct __tagBRECORD {
PVOID pvRecord;
IRecordInfo pRecInfo;
} __VARIANT_NAME_4;
} __VARIANT_NAME_3;
} __VARIANT_NAME_2;
DECIMAL decVal;
} __VARIANT_NAME_1;
};
以上就是关于程序名用什么开头全部的内容,包括:程序名用什么开头、为什么有些程序开头会有两个#呢,分别表示什么意思啊、vfp的程序编写的开头语句是什么啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)