NBB_PUT_SHORT 这个宏是按char* 类型算指针的
实际工作中,没有注意这一点,输入指针类型 强转为了 SHORT*
导致 填充的内容错误 这是第一次在工作中遇到 指针类型相关的问题
值得记录一笔
 // ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h> typedef unsigned char NBB_BYTE; /* 8 bits */
typedef signed char NBB_CHAR; /* */
typedef signed short NBB_SHORT; /* 2 byte signed integer */
typedef unsigned short NBB_USHORT; /* 2 byte unsigned integer */
typedef signed long NBB_LONG; /* 4 byte signed integer */
typedef unsigned long NBB_ULONG; /* 4 byte unsigned integer */
typedef signed int NBB_INT; /* >= 2 byte signed integer (machine */
/* word) */
typedef unsigned int NBB_UINT; /* >= 2 byte unsigned integer */
/* machine word) */
typedef int NBB_BOOL; /* boolean */
typedef void NBB_VOID; /* void if supported, char otherwise */ typedef NBB_BYTE* BFD_PUC_ALARM_INFO; BFD_PUC_ALARM_INFO g_pucAlarmInfo; /* ״̬Éϱ¨Ð­ÒéÕ» */ #define NBB_PUT_SHORT(B, S) \
(B)[] = (unsigned char)((S) >> ); \
(B)[] = (unsigned char)((S) & 0xFF) void init()
{
g_pucAlarmInfo = (BFD_PUC_ALARM_INFO) malloc();
memset(g_pucAlarmInfo, , );
}
int main()
{
NBB_BYTE ucLocalSlot = ;
NBB_BYTE ucMainSlot = ;/* Ö÷ÓÃÖ÷¿ØÅ̵IJÛλºÅ */
NBB_BYTE *pucInfoTmp = NULL;
NBB_USHORT *pusData = NULL;
NBB_ULONG ulDataLenth = ; init(); pucInfoTmp = g_pucAlarmInfo + ;
pusData = (char *)pucInfoTmp;
*pusData = 0x0001;
#if 0
NBB_PUT_SHORT(pusData, 0x0001); /* ÌîдÀàÐÍ */
#else
pusData[] =(unsigned char)( 0x0001 >> );
pusData[] =(unsigned char)( 0x0001 & 0xff); #endif
pucInfoTmp = pucInfoTmp + ;
return ;
}

一次疏忽导致的bug的更多相关文章

  1. 对 Python 语法不够了解导致的 bug

    对 Python 语法不够了解导致的 bug. `in` '20' in '11264,6144,4096,3072,2048,1024,300,30' Out[7]: True a_list = ' ...

  2. MySQL中char(36)被认为是GUID导致的BUG及解决方案

    MySQL中char(36)被认为是GUID导致的BUG及解决方案 有时候在使用Toad或在程序中,偶尔会遇到如下的错误: System.FormatException GUID 应包含带 4 个短划 ...

  3. 请慢慢移动……由于操作快慢导致的bug

    最近的工作中,遇到一个由于操作快慢不同导致的bug,原因是,操作慢的时候程序接收到了停止操作,继续处理正确,而快速操作的时候程序来不及处理操作停止的动作,导致需要传入的数据值已经改变,程序报错.这种缺 ...

  4. 基于antd封装一个高可用form组件 减少cv代码导致的bug

    引言 在开发中台过程中 我们的原型中有很多表单,antd有表单组件,但是粒度比较细,就单纯组件而言,无可厚非,但是在开发过程中,可能会造成代码不够聚合,有些表单公共逻辑无法提取,copy paste比 ...

  5. macOS 升级后导致 dart bug

    macOS 升级后导致 dart bug macOS 10.15.5 $ demo_app git:(master) flutter doctor # /Users/xgqfrms-mbp/Docum ...

  6. 在docker以FPM-PHP运行php,慢日志导致的BUG分析

    问题描述: 最近将IOS书城容器化,切换流量后.正常的业务测试了一般,都没发现问题.线上的错误监控系统也没有报警,以为迁移工作又告一段落了,暗暗的松了一口气.紧接着,报警邮件来了,查看发现是一个苹果支 ...

  7. Java 一个关于使用&&导致的BUG

    二维数据track的定义: byte[][] track = new byte[10][10]; 本意:判断track[trackY][trackX]的值是否为零,以及trackX是否小于10. 带B ...

  8. 高并发压力下导致数据库bug

    环境信息:  linux 6.1 + oracle11.2.0.3 RAC     问题现象: 学校晚上6点选课,人数大概有3000,7点时,数据库报错如下(数据库到6点多还是可以连接的),数据库hu ...

  9. 优化代码,引发了早期缺陷导致新bug

    早期系统有个缺陷,调用js时少提交一个参数,导致该参数一直是undefined,但是不会引起bug. 对系统进行优化后,这个参数变成了必要的,然后代码一直会走else,undefined值明显不是一个 ...

随机推荐

  1. Use Spring transaction to simplify Hibernate session management

    Spring对Hibernate有很好的支持    DataSource ->SessionFactory-> HibernateTranscationManagerHibernate中通 ...

  2. AX7: Overlayering and extensions

    Customization: Overlayering and extensions https://ax.help.dynamics.com/en/wiki/customization-overla ...

  3. sql2000添加表注释,列注释 及修改 删除 注释

    --创建表--create table 表(a1 varchar(10),a2 char(2)) --为表添加描述信息EXECUTE sp_addextendedproperty 'MS_Descri ...

  4. FileInputStream、FileReader、FileInputStream、FileWriter使用小结

    本文是基于Linux环境运行,读者阅读前需要具备一定Linux知识 InputStream包含如下三个方法: int read():从输入流中读取单个字节,返回所读取的字节数据(字节数据可直接转化为i ...

  5. 使用Gson解析json

    前边的博客说过将json解析成java的方法,使用的是 这几个jar包,但是在解析时层遇到一个问题,就是在将时间字符串转换为java的Timestamp对象时会抛出异常,这个问题一直放在哪里没有去解决 ...

  6. 微信支付开发-当前页面的URL未注册

    微信支付的开发设置要求设置微信支付可以发起的目录. 当出现“当前页面的URL未注册”的错误时,检查你的授权目录(一般是未填写或填写有误),注意要二级或者三级目录完全匹配.

  7. delphi中midas是什么

    Delphi中MIDAS到底是什么呢?和他相关组件是什么呢?   MIDAS(Multitiered Distributed Application Services)多层分布式应用服务.   Del ...

  8. UIImagePickerController的知识点

    1.UIImagePickerController是系统提供的用来获取图片或视频的接口,使用UIImagePickerController类来获取图片的基本步骤如下: a.初始化UIImagePick ...

  9. VC++ 在使用 CImage 的Draw 输入一个图像时,有时候会造成图像失真严重,解决的方法如下

    VC++  在使用 CImage 的Draw 输入一个图像时,有时候会造成图像失真严重,解决的方法如下 失真主要是由于变形造成的.只要设置一下变形的模式就可以了 ::SetStretchBltMode ...

  10. macbook 重装win7

    若是第一次已经成功好了,并且把第一次的安装U盘WININSTALL内容保存完好的前提下, win7要重新安装. 先进入Boot Camp移除Windows,备份好你的WIN系统的重要文件. 把第一次的 ...