assert 的用法

本文详细介绍了C语言中的assert宏,解释了assert宏的定义及其在assert.h头文件中的作用。当assert宏中的条件表达式求值为假时,assert宏会打印错误信息并终止程序运行。
assert() 宏用法
注意:assert是宏,而不是函数。在C的assert.h 头文件中。
定义如下:
#define assert(_Expression) (void)( (!!(_Expression)) || (_wassert(_CRT_WIDE(#_Expression), _CRT_WIDE(__FILE__), __LINE__), 0) )
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:
#include <assert.h>
void assert( int expression );
assert的作用是先计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,
然后通过调用 abort 来终止程序运行。
const unsigned char systemsettingpage[] = { "<html>\r\n" "<head>\r\n" "<meta charset=\"gb2312\">\r\n" // 20210421LWD "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=EmulateIE7\" />\r\n" // 20210421LWD "<title>智能蓄电池监控系统</title>" //"<Meat http-equiv=Content-Type content=text/html charset=gb2312>"//2021-03-19 "<script type=\"text/javascript\"> \r\n" "function validate()\r\n" "{\r\n" "var CT=document.getElementById(\"CT\").value\r\n" "var MT=document.getElementById(\"MT\").value\r\n" "var RT=document.getElementById(\"RT\").value\r\n" "var AD=document.getElementById(\"AD\").value\r\n" "var DA=document.getElementById(\"DA\").value\r\n" "var TM=document.getElementById(\"TM\").value\r\n" "var ED=document.getElementById(\"ED\").value\r\n" "var testtm=\"(([0-1][0-9])|(2[0-3])):[0-5][0-9]:[0-5][0-9]\"\r\n" "var testda=\"[2][0][0-9][0-9]-(([0][0-9])|([1][0-2]))-(([0-2][0-9])|([3][0-1]))\"\r\n" "submitOK=\"true\"\r\n" "if (isNaN(ED) || ED<0.0 || ED>0.2)\r\n" "{\r\n" "alert(\"均衡差异输入错误!\")\r\n" "submitOK=\"false\"\r\n" "}\r\n" "if (isNaN(CT) || CT<1 || CT>65535)\r\n" "{\r\n" "alert(\"充电记录周期输入错误!\")\r\n" "submitOK=\"false\"\r\n" "}\r\n" "if (isNaN(MT) || MT<29 || MT>65535)\r\n" "{\r\n" "alert(\"模块关机时间输入错误!\")\r\n" "submitOK=\"false\"\r\n" "}\r\n" "if (isNaN(AD) || AD<0 || AD>255)\r\n" "{\r\n" "alert(\"RS485地址超出范围!\")\r\n" "submitOK=\"false\"\r\n" "}\r\n" "if (isNaN(RT) || RT<0.1 || RT>65535.0)\r\n" "{\r\n" "alert(\"内阻测试周期输入错误!\")\r\n" "submitOK=\"false\"\r\n" "}\r\n" "if (DA.match(testda)==null)\r\n" "{\r\n" "alert(\"日期输入错误!\")\r\n" "submitOK=\"false\"\r\n" "}\r\n" "if (TM.match(testtm)==null)\r\n" "{\r\n" "alert(\"时间输入错误!\")\r\n" "submitOK=\"false\"\r\n" "}\r\n" "if(submitOK==\"false\")\r\n" "{\r\n" "return false\r\n" "}\r\n" "document.getElementById(\"RT\").value *=10\r\n" "document.getElementById(\"ED\").value *=100\r\n" "}\r\n" "function validate1()\r\n" "{\r\n" "var MA=document.getElementById(\"MA\").value\r\n" "var IP=document.getElementById(\"IP\").value\r\n" "var NG=document.getElementById(\"NG\").value\r\n" "var SM=document.getElementById(\"SM\").value\r\n" "var PN=document.getElementById(\"PN\").value\r\n" "var PR=document.getElementById(\"PR\").value\r\n" "var testma=\"[F][4].[0][E].[1][1].([0-9]|[A-F])([0-9]|[A-F]).([0-9]|[A-F])([0-9]|[A-F]).([0-9]|[A-F])([0-9]|[A-F])\"\r\n" "var testip=\"(([0-1][0-9][0-9])|([0-2][0-5][0-5])).(([0-1][0-9][0-9])|([0-2][0-5][0-5])).(([0-1][0-9][0-9])|([0-2][0-5][0-5])).(([0-1][0-9][0-9])|([0-2][0-5][0-5]))\"\r\n" "submitOK=\"true\"\r\n" "if (MA.match(testma)==null)\r\n" "{\r\n" "alert(\"MAC地址输入错误!\")\r\n" "submitOK=\"false\"\r\n" "}\r\n" "if (IP.match(testip)==null)\r\n" "{\r\n" "alert(\"IP地址输入错误!\")\r\n" "submitOK=\"false\"\r\n" "}\r\n" "if (NG.match(testip)==null)\r\n" "{\r\n" "alert(\"网关地址输入错误!\")\r\n" "submitOK=\"false\"\r\n" "}\r\n" "if (SM.match(testip)==null)\r\n" "{\r\n" "alert(\"子网掩码输入错误!\")\r\n" "submitOK=\"false\"\r\n" "}\r\n" "if (isNaN(PN) || PN<0 || PN>65535)\r\n" "{\r\n" "alert(\"SOCKET1端口输入错误!\")\r\n" "submitOK=\"false\"\r\n" "}\r\n" "if (isNaN(PR) || PR<0 || PR>65535)\r\n" "{\r\n" "alert(\"SOCKET2端口输入错误!\")\r\n" "submitOK=\"false\"\r\n" "}\r\n" "if(submitOK==\"false\")\r\n" "{\r\n" "return false\r\n" "}\r\n" "}\r\n" "</script>\r\n" "</head>\r\n" "<body style=\"background-color:#f4f4f4\">\r\n" // "<h1>\r\n" // "<span style=\"color:#FFFFFF;background-color:#E53333;\"><strong><span style=\"font-size:34px;line-height:1;\">深圳市海德森科技股份有限公司</span></strong></span><br />\r\n" // "</h1>\r\n" "<span style=\"color:#000FFF;font-size:24px\">智能蓄电池监控系统</span>\r\n" "<p align=\"center\">\r\n" "<b>[&nbsp</b>" "<a href=\"/9.html\">主页</a>" "<b>&nbsp|&nbsp</b>" "<a href=\"/4.html\">实时数据</a>" //---------------------------------------------------20210421LWD "<b>&nbsp|&nbsp</b>" "<a href=\"/C.html\">初始内阻</a>" "<b>&nbsp|&nbsp</b>" "<a href=\"/7.html\">报警记录</a>" "<b>&nbsp|&nbsp</b>" "<a href=\"/1.html\">电池设置</a>" "<b>&nbsp|&nbsp</b>" "<a href=\"/2.html\" style=\"color:#ff0000\">系统设置</a>" "<b>&nbsp|&nbsp</b>" "<a href=\"/3.html\">报警设置</a>" "<b>&nbsp|&nbsp</b>" "<a href=\"/G.html\">安装调试</a>" "<b>&nbsp]</b>\r\n" "</p>\r\n" "<hr size=\"1\">\r\n" "<br />" "<form action=\"/2.html\" name=\"fm\" onsubmit=\"return validate()\">" "<p align=\"center\" style=\"color:#000FFF\">系统参数设置</p>" "<p align=\"center\">" "<table width=\"800\" bgcolor=\"#f0ffff\" border=\"0\" cellpadding=\"10\" cellspacing=\"10\">" "<tr>" "<hr size=\"1\" width=\"800\">" "<hr size=\"1\" width=\"800\">" "<td>" "<br />" "RS485设备地址:&nbsp&nbsp&nbsp&nbsp<input type=\"text\" value=%Number name=\"AD\" id=\"AD\" size=\"10\">" "</td>" "<td>" "<br />" "RS485设备速率:&nbsp&nbsp&nbsp&nbsp<select name=\"BD\">" "<option value=\"0\" %Number__>&nbsp&nbsp4800&nbsp&nbsp</option>" "<option value=\"1\" %Number__>&nbsp&nbsp9600</option>" "<option value=\"2\" %Number__>&nbsp&nbsp19200</option>" "</select>" "</td>" "</tr>" "<tr>" "<td>" "充电记录间隔(Min):<input type=\"text\" value=%Number name=\"CT\" id=\"CT\" size=\"10\">" "</td>" "<td>" "内阻测试周期(H):&nbsp&nbsp<input type=\"text\" value=%Number name=\"RT\" id=\"RT\" size=\"10\">" "</td>" "</tr>" "<tr>" "<td>" "FLASH数据清空:&nbsp&nbsp&nbsp&nbsp<select name=\"FR\">" "<option value=\"0\">&nbsp&nbsp禁止&nbsp&nbsp</option>" "<option value=\"1\">&nbsp&nbsp使能</option>" "</select>" "</td>" "<td>" "恢复出厂设置:&nbsp&nbsp&nbsp&nbsp&nbsp<select name=\"RS\">" "<option value=\"0\">&nbsp&nbsp禁止&nbsp&nbsp</option>" "<option value=\"1\">&nbsp&nbsp使能</option>" "</select>" "</td>" "</tr>" "<tr>" "<td>" "主机日期设置:&nbsp&nbsp&nbsp&nbsp&nbsp<input type=\"text\" value=%Number____ name=\"DA\" id=\"DA\" size=\"10\">" "</td>" "<td>" "主机时间设置:&nbsp&nbsp&nbsp&nbsp&nbsp<input type=\"text\" value=%Number__ name=\"TM\" id=\"TM\" size=\"10\">" "</td>" "</tr>" "<tr>" "<td >" "电池均衡:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<select name=\"EQ\">" "<option value=\"0\"%Number__>&nbsp&nbsp禁止&nbsp&nbsp</option>" "<option value=\"1\"%Number__>&nbsp&nbsp开启</option" "</select>" "</td>" "<td>" "均衡差异(V):&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type=\"text\"value=%Number name=\"ED\" id=\"ED\" size=\"10\">" "</td>" "</tr>" "<tr>" "<td >" "模块通信速率:&nbsp&nbsp&nbsp&nbsp&nbsp<select name=\"MB\">" //--------------------------------------------------------20210421LWD "<option value=\"0\"%Number__>&nbsp&nbsp4800&nbsp&nbsp</option>" "<option value=\"1\"%Number__>&nbsp&nbsp9600&nbsp&nbsp</option>" "<option value=\"2\"%Number__>&nbsp&nbsp19200&nbsp&nbsp</option>" "<option value=\"3\"%Number__>&nbsp&nbsp38400</option" "</select>" "</td>" "<td>" "模块关机时间(Min):<input type=\"text\" value=%Number name=\"MT\" id=\"MT\" size=\"10\">" "</td>" "</tr>" "<tr>" "<td >" "内阻测试模式:&nbsp&nbsp&nbsp&nbsp&nbsp<select name=\"RM\">" //--------------------------------------------------------20210421LWD "<option value=\"0\"%Number__>&nbsp&nbsp自动快测&nbsp&nbsp</option>" "<option value=\"1\"%Number__>&nbsp&nbsp手动快测&nbsp&nbsp</option>" "<option value=\"2\"%Number__>&nbsp&nbsp自动慢测&nbsp&nbsp</option>" "<option value=\"3\"%Number__>&nbsp&nbsp手动慢测</option" "</select>" "</td>" "<td>" "组压模块:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<select name=\"GV\">" "<option value=\"0\"%Number__>&nbsp&nbsp禁止&nbsp&nbsp</option>" "<option value=\"1\"%Number__>&nbsp&nbsp开启</option" "</select>" "</td>" "</tr>" "<tr>" "<td>" "</td>" "<td align=\"right\">" "<input type=\"submit\" value=\"保存\">&nbsp" "<input type=\"reset\" value=\"取消\">" "<br />" "</td>" "</tr>" "</table>" "<hr size=\"1\" width=\"800\">" "<hr size=\"1\" width=\"800\">" "</p>" "</form>" "<form action=\"/2.html\" name=\"fm1\" onsubmit=\"return validate1()\">" "<p align=\"center\" style=\"color:#000FFF\">TCP/IP网络参数设置</p>" "</tr>" "<tr>" "<p align=\"center\">" "<table width=\"800\" bgcolor=\"#f0ffff\" border=\"0\" cellpadding=\"10\" cellspacing=\"10\">" "<tr>" "<hr size=\"1\" width=\"800\">" "<hr size=\"1\" width=\"800\">" "<td>" "<br />" "本机MAC地址:&nbsp<input type=\"text\" value=%Number___________ name=\"MA\" id=\"MA\" size=\"20\">" //----------------------------------20210421LWD "</td>" "<td>" "<br />" "本机IP地址:<input type=\"text\" value=%Number_________ name=\"IP\" id=\"IP\" size=\"18\">" "</td>" "</tr>" "<tr>" "</tr>" "<tr>" "<td>" "本地网关:&nbsp&nbsp&nbsp&nbsp<input type=\"text\" value=%Number_________ name=\"NG\" id=\"NG\" size=\"18\">" "</td>" "<td>" "子网掩码:&nbsp&nbsp<input type=\"text\" value=%Number_________ name=\"SM\" id=\"SM\" size=\"18\">" "</td>" "</tr>" "<tr>" "<td>" "Socket1端口号:<input type=\"text\" value=%Number name=\"PN\" id=\"PN\" size=\"10\">" "</td>" "<td>" "Socket2端口号:<input type=\"text\" value=%Number name=\"PR\" id=\"PR\" size=\"10\">" "</td>" "</tr>" "<tr>" "<td align=\"right\">" "<input type=\"submit\" value=\"保存\">&nbsp" "<input type=\"reset\" value=\"取消\">" "<br />" "</td>" "</tr>" "</table>" "<hr size=\"1\" width=\"800\">" "<hr size=\"1\" width=\"800\">" "</p>" "</form>" // "<script language=\"JavaScript\">\r\n" // "function reloadpg()\r\n" // "{\r\n" "<td align=\"right\">" "<input type=\"submit\" value=\"保存\">&nbsp" "<input type=\"reset\" value=\"取消\">" "<br />" "</td>" // // "setTimeout(\"reloadpg()\",5000)\r\n" // "document.location.href=\"/2.html\"\r\n" // // "}\r\n" // "setTimeout(\"reloadpg()\",5000)\r\n" // // "</script>\r\n" "</body>" "</html>" };转化为完整的16进制数组
09-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值