IAR 7.2 identifier "size_t" is undefined

如果使用memset()函数的话会出现
Error[Pe020]: identifier "size_t" is undefined C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.2\arm\inc\c\DLib_Product_string.h 57
IAR设置已经包含了标准库,不知道为什么就是找不到 size_t
图片说明
图片说明

1个回答

 如果你的系统是32bit的,加上 #define size_t 4 否则定义成2
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
stm32f207 iar 7.3 调试
我这个程序在iar6.3和iar7.3上面编译时没有错误,但是在用j-link下载调试时,IAR6.3 调试结果正确,而IAR7.3调试结果错误,跟踪运行结果是在程序开始时进行硬件初始化但是当运行到定时器使能这条语句时芯片内部产生硬件错误中断,然后进入死循环的中断程序中。但是本项目必须用iar7.3完成。希望各位同行老师前辈帮忙解决哈,非常感谢
iar的release模式有错误
Error[Li005]: no definition for "__write" [referenced from putchar.o(dl6M_tln.a)] 应该怎么办
跪求以下zigbee程序协调器S1在哪部分控制电机转动?急急急急急急
/********************************************************************* * INCLUDES */ #include "OSAL.h" #include "AF.h" #include "ZDApp.h" #include "ZDObject.h" #include "ZDProfile.h" #include "GenericApp.h" #include "DebugTrace.h" #if !defined( WIN32 ) #include "OnBoard.h" #endif /* HAL */ #include "hal_lcd.h" #include "hal_led.h" #include "hal_key.h" #include "hal_uart.h" /* RTOS */ #if defined( IAR_ARMCM3_LM ) #include "RTOS_App.h" #endif /********************************************************************* * MACROS */ #define LIGHT P0_5 //定义P0.5口为光敏控制端 #define SMOKE P0_6 //定义P0.6口为烟雾控制端 #define LED P1_0 #define A1 P1_4 //定义步进电机连接端口 #define B1 P1_5 #define C1 P1_6 #define D1 P1_7 #define uchar unsigned char #define uint unsigned int uint8 motorstatus,CS,CCS,Cmotorstatus; uchar phasecw[4] ={0x80,0x40,0x20,0x10};//正转 电机导通相序 D-C-B-A uchar phaseccw[4]={0x10,0x20,0x40,0x80};//反转 电机导通相序 A-B-C-D static void MotorData(uchar data); static void MotorCW(void); static void MotorCCW(void); static void MotorStop(void); static void InitIO(void); static void Delay_MS(uint Time);// ms延时 uint8 AppTitle[] = "ALD2530 Motor"; //应用程序名称 uint8 LedState = 0; uint8 ucEdDir = 0; //终端1为正转 2为反转 uint8 ucDirection = 1; //1为正转 2为反转 uint8 ucSpeed = 2; //速度2-10之间 uint8 DataBuf[3]; uint8 count,Ccount; /********************************************************************* * MACROS */ /********************************************************************* * CONSTANTS */ /********************************************************************* * TYPEDEFS */ /********************************************************************* * GLOBAL VARIABLES */ // This list should be filled with Application specific Cluster IDs. const cId_t GenericApp_ClusterList[GENERICAPP_MAX_CLUSTERS] = { GENERICAPP_zigbee1 }; const SimpleDescriptionFormat_t GenericApp_SimpleDesc = { GENERICAPP_ENDPOINT, // int Endpoint; GENERICAPP_PROFID, // uint16 AppProfId[2]; GENERICAPP_DEVICEID, // uint16 AppDeviceId[2]; GENERICAPP_DEVICE_VERSION, // int AppDevVer:4; GENERICAPP_FLAGS, // int AppFlags:4; GENERICAPP_MAX_CLUSTERS, // byte AppNumInClusters; (cId_t *)GenericApp_ClusterList, // byte *pAppInClusterList; GENERICAPP_MAX_CLUSTERS, // byte AppNumInClusters; (cId_t *)GenericApp_ClusterList // byte *pAppInClusterList; }; // This is the Endpoint/Interface description. It is defined here, but // filled-in in GenericApp_Init(). Another way to go would be to fill // in the structure here and make it a "const" (in code space). The // way it's defined in this sample app it is define in RAM. endPointDesc_t GenericApp_epDesc; /********************************************************************* * EXTERNAL VARIABLES */ /********************************************************************* * EXTERNAL FUNCTIONS */ /********************************************************************* * LOCAL VARIABLES */ byte GenericApp_TaskID; // Task ID for internal task/event processing // This variable will be received when // GenericApp_Init() is called. devStates_t GenericApp_NwkState; byte GenericApp_TransID; // This is the unique message ID (counter) afAddrType_t GenericApp_DstAddr; /********************************************************************* * LOCAL FUNCTIONS */ static void GenericApp_ProcessZDOMsgs( zdoIncomingMsg_t *inMsg ); static void GenericApp_HandleKeys( byte shift, byte keys ); static void GenericApp_MessageMSGCB( afIncomingMSGPacket_t *pckt ); static void GenericApp_SendTheMessage( void ); #if defined( IAR_ARMCM3_LM ) static void GenericApp_ProcessRtosMessage( void ); #endif #define LED P1_2 /********************************************************************* * NETWORK LAYER CALLBACKS */ /********************************************************************* * PUBLIC FUNCTIONS */ void GenericApp_Init( uint8 task_id ) { GenericApp_TaskID = task_id; GenericApp_NwkState = DEV_INIT; GenericApp_TransID = 0; InitIO(); //初始化电机IO引脚 P0DIR&=~(1<<5|1<<6);//P05 P06输入 P1DIR|=0X01;//P10输出 motorstatus=0;//电机状态标志0 //Cmotorstatus=1; // Device hardware initialization can be added here or in main() (Zmain.c). // If the hardware is application specific - add it here. // If the hardware is other parts of the device add it in main(). //以下三句,是设置终端向协调器单播 GenericApp_DstAddr.addrMode = (afAddrMode_t)Addr16Bit; GenericApp_DstAddr.endPoint = GENERICAPP_ENDPOINT; GenericApp_DstAddr.addr.shortAddr = 0x0000; // Fill out the endpoint description. GenericApp_epDesc.endPoint = GENERICAPP_ENDPOINT; GenericApp_epDesc.task_id = &GenericApp_TaskID; GenericApp_epDesc.simpleDesc = (SimpleDescriptionFormat_t *)&GenericApp_SimpleDesc; GenericApp_epDesc.latencyReq = noLatencyReqs; // Register the endpoint description with the AF afRegister( &GenericApp_epDesc ); // Register for all key events - This app will handle all key events RegisterForKeys( GenericApp_TaskID ); // Update the display #if defined ( LCD_SUPPORTED ) HalLcdWriteString( "GenericApp", HAL_LCD_LINE_1 ); #endif ZDO_RegisterForZDOMsg( GenericApp_TaskID, End_Device_Bind_rsp ); ZDO_RegisterForZDOMsg( GenericApp_TaskID, Match_Desc_rsp ); #if defined( IAR_ARMCM3_LM ) // Register this task with RTOS task initiator RTOS_RegisterApp( task_id, GENERICAPP_RTOS_MSG_EVT ); #endif } uint16 GenericApp_ProcessEvent( uint8 task_id, uint16 events ) { uint8 i; afIncomingMSGPacket_t *MSGpkt; afDataConfirm_t *afDataConfirm; // Data Confirmation message fields byte sentEP; ZStatus_t sentStatus; byte sentTransID; // This should match the value sent (void)task_id; // Intentionally unreferenced parameter if ( events & SYS_EVENT_MSG ) { MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( GenericApp_TaskID ); while ( MSGpkt ) { switch ( MSGpkt->hdr.event ) { case ZDO_CB_MSG: GenericApp_ProcessZDOMsgs( (zdoIncomingMsg_t *)MSGpkt ); break; case KEY_CHANGE://此处是按键事件函数是S1按键按下触发的事件,主要是实现光敏的控制 GenericApp_HandleKeys( ((keyChange_t *)MSGpkt)->state, ((keyChange_t *)MSGpkt)->keys );//按键触发函数执行 break; case AF_DATA_CONFIRM_CMD: // This message is received as a confirmation of a data packet sent. // The status is of ZStatus_t type [defined in ZComDef.h] // The message fields are defined in AF.h afDataConfirm = (afDataConfirm_t *)MSGpkt; sentEP = afDataConfirm->endpoint; sentStatus = afDataConfirm->hdr.status; sentTransID = afDataConfirm->transID; (void)sentEP; (void)sentTransID; // Action taken when confirmation is received. if ( sentStatus != ZSuccess ) { // The data wasn't delivered -- Do something } break; case AF_INCOMING_MSG_CMD://有数据接收到,所触发的函数事件 GenericApp_MessageMSGCB( MSGpkt );//接收到协调器发来的数据,并进行执行。 break; case ZDO_STATE_CHANGE: GenericApp_NwkState = (devStates_t)(MSGpkt->hdr.status); if ( (GenericApp_NwkState == DEV_ZB_COORD) || (GenericApp_NwkState == DEV_ROUTER) || (GenericApp_NwkState == DEV_END_DEVICE) ) { // Start sending "the" message in a regular interval. osal_start_timerEx( GenericApp_TaskID, GENERICAPP_SEND_MSG_EVT, GENERICAPP_SEND_MSG_TIMEOUT ); } break; default: break; } // Release the memory osal_msg_deallocate( (uint8 *)MSGpkt ); // Next MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( GenericApp_TaskID ); } // return unprocessed events return (events ^ SYS_EVENT_MSG); }
为什么IAR总是报错说IRCON未定义
根据欧阳骏老师的蓝牙BLE开发完全手册写的程序,第一次写,也没啥基础,想要写一个让蓝牙CC2540定时发送一个数字1的代码,但是现在IAR总是报错说IRCON未定义,可是IRCON不是寄存器吗?头文件我也写进去了呀,求大神帮忙!! 这部分是main.c ``` #include"uart.h" #include"timer.h" void main(void) { unsigned int count; Uart_Init(); Timer1_Init(); while(1) { if(IRCON&(1<<1)) { count++; if(count>2) { count=0; Uart_Print("1"); } IRCON&=~(1<<1); } } } ``` timer.c ``` #include<ioCC2540.h> #include"timer.h" void Timer1_Init() { T1CTL=0x01; } ``` timer.h ``` #ifndef __TIMER_H__ #define __TIMER_H__ extern void Timer1_Init(void) #endif ``` uart.c ``` #include<ioCC2540.h> #include"uart.h" void Uart_Init(void) { CLKCONCMD&=~(1<<6); while(CLKCONSTA&(1<<6)) CLKCONCMD&=~((1<<6)|(7<<0)); PERCFG=0x00; P0SEL|=(0xf<<2); P2DIR&=~(3<<6); U0CSR|=1<<7; U0GCR=9; U0BAUD=59; UTX0IF=0; U0CSR|=1<<6; URX0IE=1; EA=1; } void Uart_Print(char *p) { unsigned int i; for (i=0;i<1;i++) { U0DBUF=*p++; while(!UTX0IF); UTX0IF=0; } U0DBUF=0x0A; while(!UTX0IF); UTX0IF=0; } ``` uart.h ``` #ifndef __UART_H__ #define __UART_H__ extern void Uart_Init(void); extern void Uart_Print(char *p); #endif ```
IAR中网页页面能做动态页面显示么,下面是静态的网关配置,
/** ****************************************************************************** * @file webpge.h * @author WIZnet Software Team * @version V1.0 * @date 2015-xx-xx * @brief web服务器现在的内容 * @attention ****************************************************************************** **/ #ifndef __WEBPAGE_H #define __WEBPAGE_H #define INDEX_HTML "<!DOCTYPE html>"\ "<html>"\ "<head>"\ "<title>源地仪器网络适配器W5500的网页配置</title>"\ "<meta http-equiv='Content-Type' content='text/html; charset=GB2312'/>"\ "<style type='text/css'>"\ "body {text-align:left; background-color:#c0deed;font-family:Verdana;}"\ "#main {margin-right:auto;margin-left:auto;margin-top:30px;}"\ "label{display:inline-block;width:100px;}"\ "#main h3{color:#66b3ff; text-decoration:underline;}"\ "</style>"\ "<script>"\ "function $(id) { return document.getElementById(id); };"\ "function settingsCallback(o) {"\ "if ($('txtVer')) $('txtVer').value = o.ver;"\ "if ($('txtMac')) $('txtMac').value = o.mac;"\ "if ($('txtIp')) $('txtIp').value = o.ip;"\ "if ($('txtSub')) $('txtSub').value = o.sub;"\ "if ($('txtGw')) $('txtGw').value = o.gw;"\ "};"\ "</script>"\ "</head>"\ "<body>"\ "<div id='main'>"\ "<div style='background:snow; display:block;padding:10px 20px;'>"\ "<h3>配置网络参数</h3>"\ "<form id='frmSetting' method='POST' action='config.cgi'>"\ "<p><label for='txtIp'>固件版本号:</label><input type='text' id='txtVer' name='ver' size='16' disabled='disabled' /></p>"\ "<p><label for='txtIp'>MAC地址:</label><input type='text' id='txtMac' name='mac' size='16' disabled='disabled' /></p>"\ "<p><label for='txtIp'>IP地址:</label><input type='text' id='txtIp' name='ip' size='16' /></p>"\ "<p><label for='txtSub'>子网掩码:</label><input type='text' id='txtSub' name='sub' size='16' /></p>"\ "<p><label for='txtGw'>默认网关:</label><input type='text' id='txtGw' name='gw' size='16' /></p>"\ "<p><input type='submit' value='保存并重启' /></p>"\ "</form>"\ "</div>"\ "</div>"\ "<div style='margin:5px 5px;'>"\ "&copy;Copyright 2014 by 源地仪器"\ "</div>"\ "<script type='text/javascript' src='w5500.js'></script>"\ "</body>"\ "</html>" #endif
IAR如何添加opencv库?
我想用K60芯片对7040摄像头采集的图像进行处理,所用K60开发环境为IAR7.2,现在想调用opencv库进行图像处理,但是不知道该开发环境怎么添加opencv库,有谁知道的嘛?
在STM32Cube中启动touchGFX编辑界面,编译MDK工程时遇到问题
本打算用STM32CubeMX启动touchGFX,使用的是STM32F469探索板,各项跟GFX相关的设置都设好了,就差最后在板子上验证两个软件有没有整合成功了,结果生成代码后编译完成,但是链接时出现了大量罕见错误(共计103个)如: Error:** L6654E:** Rejected Local Symbol xx referred to from non group member xx.o(.iar.stackusage) 错误虽然数量多,但是基本都是按上述格式报错的。 由于本人水平不足,之前也从未碰到过这样的问题,实在是束手无策,就来请教论坛里各位大手子了!如果最后能成功,会把工程文件放上来,除LCD相关部分外的芯片设置和touchGFX编辑都基本接近空白,所以可以当成模板自由编辑,这样也可以免去从前繁琐的移植步骤,实现一键移植(CubeMX提供了这样的便利为什么不用呢)~ 以下是部分具体的报错信息: ``` linking... 469_touchGFX_interfacing_test\469_touchGFX_interfacing_test.axf: Error: L6654E: Rejected Local symbol .text7 referred to from non group member Application.o(.iar.stackusage) 469_touchGFX_interfacing_test\469_touchGFX_interfacing_test.axf: Error: L6654E: Rejected Local symbol .text9 referred to from non group member Application.o(.iar.stackusage) 469_touchGFX_interfacing_test\469_touchGFX_interfacing_test.axf: Error: L6654E: Rejected Local symbol .text11 referred to from non group member Application.o(.iar.stackusage) ``` **更新:** 更换编译器并把touchgfx disable再enable,重新添加所需文件以及touchgfx-core.h 之后,报错信息数量大幅减少(现共计24件),且变成了: Error: **L6242E**: Cannot Link Object xx.o as its attributes are incompatible with the image attributes. 应该会有人注意到每一段末尾的wchart-16 clashes with wchart-32,其实已经在option for target里C/C++的misc control里加上了--wchar32,否则报错成千上万…… 值得注意的是,两次报错所涉及的o文件都只与touchgfx的工程中产生的对象有关,比如button,box,screennameView等,感觉只要解决这个问题,就可以离一键移植更近一步了…… **更新2:** 研究了一下原因是各自的枚举和宽字符宽度定义各有不同导致的这种问题……想在编译器不换成AC6的情况下在命令行输入 -fshort-enums -fshort-wchar,然而找不到命令行了…… **更新3:** 虽然找到了对照表,但是AC5是没有对应-fshort-enums的命令……所以要继续尝试下去的话就还需要更换成AC6,所以现在这里暂时变成了一个keil AC5换成AC6的编译器切换问题…… **更新4:** 成功切换为AC6之后,编译错误只剩下一个!近了,更近了! ``` 469_touchGFX_interfacing_test\469_touchGFX_interfacing_test.axf: Error: L6683E: Merge Section TextFlashSection(texts.o) has an element size of zero ``` **更新5:** 楼主其实进行到更新4的时候无比绝望,因为最后仅剩的报错怎么看都是程序的结构性问题……然鹅,楼主发现了,生成工程之前的操作步骤可以挽救!楼主后来在STM32CubeMX生成代码后没有直接进入touchgfx,而是先点开工程并编译确保工程成功编译,再进入touchgfx控件,生成代码,debug,问题就没了,连编译器都没换…… 目前进度是可以将图片加载了,但是触控还需要调整。
在芯片K60上用IAR写了个显示程序,用仿真器连接K60调试正常,拔下仿真器无法正常工作
在芯片K60上用IAR写了个显示程序,用仿真器连接K60调试正常,拔下仿真器无法正常工作,任务起来了,但是串口打印显示任务进了几次就不进去了,求大神解答 {COMPONENT_TASK, componentTask, 5000, 7, "hmiComponent", MQX_USER_TASK, 0, 0 },//CL 文件解析显示程序 _task_create(0,COMPONENT_TASK,0);//任务是这么起的 VOID componentTask(UINT32 initial_data) { INT32 i; INT32 ret; INT32 run_count; mqxprintf("componentTask step1\n"); guiRegistDisplayString("初始化错误参数名最大小步长度单位当前值编辑内码参数修改宏称整数显示使能电系交浮"); mqxprintf("componentTask step2\n"); //加载装置配置文件 ret = loadDeviceCfgFile(DEVICE_CONFIG_FILE_NAME); if(ret < 0)//加载失败 { mqxprintf("加载device.cfg失败,ret = %d\n",ret); //return; } mqxprintf("componentTask step3\n"); //加载装置定值文件 ret = loadDeviceSettings(DEVICE_SETTINGS_BIN_FILE_NAME,DEVICE_TYPE_10); if(ret < 0)//读取失败 { mqxprintf("加载settings.bin失败,ret = %d\n",ret); } component_reload_flag = TRUE; mqxprintf("componentTask step4\n"); run_count = 0; while(1) { mqxprintf("*"); run_count++; g_local_sys_usec += 100000; if(g_local_sys_usec >= 1000000) { g_local_sys_sec++; g_local_sys_usec = 0; } if(component_reload_flag == TRUE) { component_reload_flag = FALSE; //停运组件 for(i = 0;i < component_instance_vector.size();i++) { if(component_instance_vector[i]->stop != NULL) { component_instance_vector[i]->stop(run_count,NULL); } } //加载临时定值 ret = loadDeviceSettings(DEVICE_SETTINGS_TMP_FILE_NAME,0); mqxprintf("loadDeviceSettings done!\n"); if(ret < 0) { mqxprintf("加载settings.tmp失败,ret = %d\n",ret); } else { remove(DEVICE_SETTINGS_TMP_FILE_NAME); } //更新参数 updateParameter(); mqxprintf("updateParameter done!\n"); //自动填充 for(i = 0;i < component_instance_vector.size();i++) { if(component_instance_vector[i]->autoPadPara != NULL) { component_instance_vector[i]->autoPadPara(run_count,NULL); } } //更新包含宏的信号输出 updateMarcoSignalout(); mqxprintf("updateMarcoSignalout done!\n"); //更新包含宏的参数 updateMarcoParameter(); mqxprintf("updateMarcoParameter done!\n"); //按照显示掩码过滤表 filterTableByShowMask(); mqxprintf("filterTableByShowMask done!\n"); //按照显示掩码过滤参数组 filterParameterGroupByShowMask(); mqxprintf("filterParameterGroupByShowMask done!\n"); //保存定值 ret = saveDeviceSettings(DEVICE_SETTINGS_BIN_FILE_NAME,DEVICE_TYPE_10); mqxprintf("saveDeviceSettings done!\n"); if(ret < 0)//保存失败 { mqxprintf("保存settings.bin失败,ret = %d\n",ret); } //更新汉字库 guiUpdateHanZiDot12X12(); mqxprintf("guiUpdateHanZiDot12X12 done!\n"); //step1 for(i = 0;i < component_instance_vector.size();i++) { if(component_instance_vector[i]->initStep1 != NULL) { component_instance_vector[i]->initStep1(run_count,NULL); } } mqxprintf("componentTask step1 done!\n"); //step2 for(i = 0;i < component_instance_vector.size();i++) { if(component_instance_vector[i]->initStep2 != NULL) { component_instance_vector[i]->initStep2(run_count,NULL); } } mqxprintf("componentTask step2 done!\n"); } //运行组件 for(i = 0;i < component_instance_vector.size();i++) { if(component_instance_vector[i]->run != NULL) { component_instance_vector[i]->run(run_count,NULL); } } mqxprintf("componentTask run done!\n"); TASK_DELAY_MS(100); } }
iar编译总是未定义,明明移植的之前工程就是这么写的但是不行。请大神求解
![图片说明](https://img-ask.csdn.net/upload/201911/15/1573806567_749405.png)![图片说明](https://img-ask.csdn.net/upload/201911/15/1573806579_565787.png)![图片说明](https://img-ask.csdn.net/upload/201911/15/1573806585_840727.png)
430仿真器在高低版本软件上的使用
430仿真器UIF的,固件是V2版本的,在IAR5.3上用过之后,在IAR5.2上用会不会有什么问题和影响,我重新安装软件之后插上仿真器没有提示安装驱动,自动安上了,下载程序也可以用,但是不知道这样是否是正确的,会不会对调试程序和仿真器有什么影响啊
MSP430G2转换结果数据类型
以下是程序,软件用的IAR: #include "io430.h" #include "dandao_duocai.h" #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) #define dataout P2OUT unsigned int ADC10_Result[100]; int d,c; void cheek_clock() { BCSCTL3_bit.LFXT1S0 = 0; //配置ACLK为12KHz BCSCTL3_bit.LFXT1S1 = 1; if(CALBC1_1MHZ==0xFF||CALDCO_1MHZ==0xFF) //配置MCLK为1MHz while(1); //校准数据是否被擦除,若是则CPU挂起。 BCSCTL1=CALBC1_1MHZ; DCOCTL=CALDCO_1MHZ; } ///////----------采集一串数,并取出最大值 void zzzz() { //unsigned int ADC10_Result[100]; int i,j; P1SEL|=BIT1;//P1.1第二功能 ADC10CTL1 |= CONSEQ_2; //单通道重复采样模式 ADC10CTL0 |= SREF_1+REFON+REF2_5V;//选择内部参考源2.5V,打开基准源 ADC10CTL0 |= ADC10SHT_3+MSC; //过采样率设置为64个采样周期,打开AD转换 ADC10CTL1|= ADC10SSEL_1+ADC10DIV_1+SHS_0; //ACLK2分频为采样时钟,用ADC10SC触发采集 ADC10CTL1 |=INCH_1; //选择通道A1 ADC10CTL0 |= ADC10ON; //开启ADC10 ADC10AE0 |= 0x02; //开启外部通道A1 ADC10CTL0&=~ADC10IFG;//清中断标志 for(int k=0;k<100;k++) { ADC10CTL0 |=ENC+ADC10SC; //开始转换 while((ADC10CTL0 &ADC10IFG)==0); //等待ADC10IFG标志变高(转换完成) ADC10_Result[k]=ADC10MEM; //读取采样结果 delay_ms(2); P1SEL&=~BIT1;//关P1.1第二功能。 } ////////--------取ADC10_Result[100] 中的最大数赋值给C for(i=0;i<100;i++) { for(j = i + 1;j<100;j++) if(ADC10_Result[i]<=ADC10_Result[j]) { d=ADC10_Result[i];ADC10_Result[i]=ADC10_Result[j];ADC10_Result[j]=d; } } c=ADC10_Result[99]; /////////--------取ADC10_Result[100] 中的最大数赋值给C } ///////----------采集一串数,并取出最大值 void beishu() { if(c<45) dataout=0x00; if((c>=45)&&(c<53)) dataout=0x01; if((c>=53)&&(c<613)) dataout=0x10; else dataout=0x11; } int main(void) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; cheek_clock(); P2DIR|=(BIT0+BIT1+BIT2); while(1) { zzzz(); /// ----调用 beishu(); dataout&=~BIT3;/////p1.3外接另一个芯片的使能端。低电平有效, } } 问题是:Error[Pe147]: declaration is incompatible with "unsigned char ADC10_Result[100]" (declared at line 6 of "D:\workspace_v5_1\lianxi\caiji_fangda\dandao_duocai.h") D:\workspace_v5_1\lianxi\caiji_fangda\main.c 7 补充:当我将unsigned int ADC10_Result[100];设置为局部变量时(也就是zzzz()子程序中的屏蔽部分)就不会有错。或者我把这个数组定义为unsigned char 类型且作为全局变量也可以,但是unsigned char 是8位的,而转换结果是10位,软件没报错。
嵌入式新手求教,在IAR下对两个工程合并,编译出现未知错误。。
我是嵌入式刚开学的新手 在我们嵌入式课程上面,我们通过IAR对NXP LPC2478进行开发和编译学习。。 课程中收到了一些实验例程,其中就包括LCD 和 SD卡读取的相关例子。。 在学习中,我希望把SD卡读写和LCD显示整合在一起,能实现读取SD卡中数据显示在LCD屏幕的功能。。 在两个工程合并中,我用LCD的例子为基础,依次添加SD卡中相关的.c文件和.h文件。。。在添加SD卡的例子过程中,出现的未知错误,添加mmc.c的时候编译出错,出错提示如下 Error[Pa055]: expected a type attribute C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\inc\NXP\iolpc2460.h 2734 Error[Pe079]: expected a type specifier C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\inc\NXP\iolpc2460.h 2734 Error[Pe040]: expected an identifier C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\inc\NXP\iolpc2460.h 2734 Error[Pe168]: a function type is not allowed here C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\inc\NXP\iolpc2460.h 2734 Error[Pe147]: declaration is incompatible with "union <unnamed> volatile _A_<error>" (declared at line 4079) C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\inc\NXP\iolpc2460.h 4080 等这几类错误,一共一百多个错误,查找的源头是 Embedded Workbench 5.4 Evaluation\arm\inc\NXP\iolpc2460.h 在添加各个.c时编译时没有问题的,但是在main函数 #include “mmc.h” 时 就是会出现错误。 我在整合时看到,SD卡的例子用的头文件时<nxp/iolpc2468.h> 而 LCD则用的是另外的头文件“LPC23XX.h”,“LPC2468.h” 所以在此希望高人能帮助下我,谢谢。。
Error[Pe065]: expected a ";"
我将gcc工程,移植到IAR Embedded Workbench中遇到一系列的错误提示,其中一个是Error[Pe065]: expected a ";" 提示错误的位置为如下语句,请问我应该怎么修改? typedef int ERROR_CantUseEvilMethod[sizeof(GenericClass *)==sizeof(function_to_bind) ? 1 : -1] __attribute((unused));
在IAR中出现expected a 错误
#include "emot.h" unsigned int counter=0; uchar TEMPFLAG; void DELAY(uint n); void INITIAL() { LED_INIT(); SET_TIMER2_INT(1); SET_TIMER2_COUNTER(0X00FF); //这里出现错误 } void main(void) { INITIAL(); led1=0; led2=1; TIMER2_ACTION(0); while(1) { if(TEMPFLAG) { led1!=led1; led2!=led2; TEMPFLAG=0; } } } #pragma vector=T2_VECTOR __interrupt void T2_ISR(void) { CLEAR_TIMER2_INT_FLAG(); if(counter<200) counter++; else {counter=0; TEMPFLAG=1;} } 下面是emoth.h的编写。 #ifndef EMOT_H #define EMOT_H #include<ioCC2430.H> #define uint unsigned int #define uchar unsigned char /********************************************** //the common macro ***********************************************/ #define BYTE unsigned char #define WORD unsigned int #define UPPER_BYTE(a) ((BYTE)(((WORD)(a))>>8)) #define HIBYTE(a) UPPER_BYTE(a) #define LOWER_BYTE(a) ((BYTE)((WORD)(a))) #define LIBYTE(a) LOWER_BYTE(a) #define SET_WORD(regH,regL,word) do{(regH)=UPPER_BYTE(word);(regL)=LOWER_BYTE(word)}while(0) /**************************************************** /初始化T2的配置 *****************************************************/ #define TIMER2_CMP_BYTE(val)\ do{ \ if(val==0)\ {\ T2CNF&=~0X08;\ }\ else\ {T2CNF|=0X08;\ }\ while(0) #define TIMER2_ACTION(val)\ do{\ if(val==0) T2CNF|=0X01;\ else T2CNF&=~0XFE;\ }while(0) #define SET_TIMER2_COUNTER(val) SET_WORD(T2TLD,T2THD,val) //清除中断标志 #define CLEAR_TIMER2_INT_FLAG()\ do{ \ T2CNF&=~0XC0; \ T2IF=0; \ }while(0) //设置T2比较值 #define SET_T2_CMP_COUNTER(val)\ do{ \ T2CMP=0X00; \ T2CMP|=(char)val; \ }while(0) //开启中断,0为比较中断。1为溢出中断 #define SET_TIMER2_INT(val)\ do{ \ if(val==0) T2PEROF2|=0X80; \ else T2PEROF2|=0X40; \ }while(0) //设定溢出值 #define SET_TIMER2_CAP_COUNTER(val) SET_WORD(T2CAPLPL,T2CAPHPL,val) //有时错误会出现没有定义T2CAPLPL。但T2CAPLPL不是已经在ioCC2430里面有定义吗。 //LED初始化 #define LED_INIT()\ do{ \ P1SEL&=~0X03; \ P1|=0X03; \ P1DIR|=0X03; \ }while(0) #define led1 P1_0 #define led2 P1_1 #endif
STM32f4 用IAR编译出错
错误代码:Fatal Error[Pe035]: #error directive: "Please select first the target STM32F4xx device used in your application (in stm32f4xx.h file)" 网上查到的都是是STM3210系列的解决办法,求stm32f4xx的解决办法。 我的debug配置如图![求怎么改配置](https://img-ask.csdn.net/upload/201501/03/1420273040_272920.png)
keil编译时 error C141: syntax error near ')'
简单的烟雾报警程序中先是缺少了lcd1602的头文件 我从网上找了添加了后发现有错误 求大神帮我解答一下疑问 谢谢了 /******************************** FILE NAME: lcd1602.c CHIP TYPE: AT89C51 CLOCK FREQUENCY: 12MHZ IDE: VSMStudio COMPILER: IAR for 8051 TIME: September 2010 ********************************/ #include "reg52.h" #include "intrins.h" // Define P3 pins #define DATA_BUS (P0) #define RS (P2_bit.P2_0) #define RW (P2_bit.P2_1) #define E (P2_bit.P2_2) // Define new types typedef unsigned char uchar; typedef unsigned int uint; // Function Prototypes void check_busy(void); void write_command(uchar com); void write_data(uchar data); void LCD_init(void); void string(uchar ad ,uchar *s); void lcd_test(void); void delay(uint); void main(void) { LCD_init(); while(1) { string(0x80,"Have a nice day!"); string(0xC0," Proteus VSM"); delay(100); write_command(0x01); delay(100); } } /******************************************* LCD1602 Driver mapped as IO peripheral *******************************************/ // Delay void delay(uint j) { uchar i = 60; for(; j>0; j--) { while(--i); i = 59; while(--i); i = 60; } } // Test the Busy bit void check_busy(void) { do { DATA_BUS = 0xff; E = 0; RS = 0; RW = 1; E = 1; __no_operation(); } while(DATA_BUS & 0x80); E = 0; } // Write a command void write_command(uchar com) { check_busy(); E = 0; RS = 0; RW = 0; DATA_BUS = com; E = 1; __no_operation(); E = 0; delay(1); } // Write Data void write_data(uchar data) { check_busy(); E = 0; RS = 1; RW = 0; DATA_BUS = data; E = 1; __no_operation(); E = 0; delay(1); } // Initialize LCD controller void LCD_init(void) { write_command(0x38); // 8-bits, 2 lines, 7x5 dots write_command(0x0C); // no cursor, no blink, enable display write_command(0x06); // auto-increment on write_command(0x01); // clear screen delay(1); } // Display a string void string(uchar ad, uchar *s) { write_command(ad); while(*s>0) { write_data(*s++); delay(100); } }
IAR K60 printf Error[lp003] 如何解决
Error[Lp003]: reference to undefined special symbol __iar_bound$$__VECTOR_TABLE from C:\Users\11747\Desktop\K60\LCD_摄像头_多功能调试上位机\Prj\IAR\
在多线程环境下使用udpclient进行异步UDP接收出现“访问已注销对象”的异常,怎么办?
最近打算使用C#写一个仿飞秋的局域网即时通信工具,但是在使用多线程异步收发UDP数据时老是出现“访问对象已注销”的异常,查了好久都没有找到原因,只能求助于网友啦。 完整代码可以在我的github上下载:[WAW](https://github.com/WorldAllWhite/WaW "") 说说具体情况吧: 1.为了进行udp数据的异步接收,我写了一个异步接收类AsyncUDPclient。 ``` public class AsyncUDPclient { private IPEndPoint recEP, sendEP; private UdpClient udpReceive, udpSend; private UdpState udpReceiveState, udpSendState; //定义消息接收事件 public event MessageReceivedEventHandle MessageReceived; // 异步状态同步 //private ManualResetEvent sendDone = new ManualResetEvent(false); //private ManualResetEvent receiveDone = new ManualResetEvent(false); public AsyncUDPclient() { recEP = new IPEndPoint(IPAddress.Any, InfoSet.IpPort.Port);//允许从任意远程主机终节点接收数据 sendEP = new IPEndPoint(IPAddress.Any, InfoSet.IpPort.Port);//允许向任意远程主机终节点发送数据,发送和接收使用同一个端口 udpReceive = new UdpClient(recEP); udpSend = new UdpClient(); udpReceiveState = new UdpState(); udpReceiveState.udpClient = udpReceive; udpReceiveState.ipEndPoint = recEP; udpSendState = new UdpState(); udpSendState.udpClient = udpSend; udpSendState.ipEndPoint = sendEP; } public void ReceiveMsg() { udpReceive.BeginReceive(new AsyncCallback(ReceiveCallback), udpReceiveState); //receiveDone.WaitOne(); } private void ReceiveCallback(IAsyncResult iar) { UdpState s = iar.AsyncState as UdpState; if(iar.IsCompleted) { IPEndPoint ep = s.ipEndPoint; UdpClient u = s.udpClient; Byte[] receiveBytes = u.EndReceive(iar, ref ep); //调用消息接收事件处理方法 MessageEventArgs args = new MessageEventArgs(); args.remoteIP = ep; args.buffer = receiveBytes; if (MessageReceived != null) { MessageReceived(this, args); } //receiveDone.Set(); u.BeginReceive(new AsyncCallback(ReceiveCallback), s);//此处需要验证s.ipEndPoint的值是否已经变化? } } public void SendMsg(byte[] datagram,int bytes,IPEndPoint sendEP) { udpSendState.ipEndPoint = sendEP; udpSend.BeginSend(datagram, bytes,sendEP, new AsyncCallback(SendCallback), udpSendState); Thread.Sleep(100); } private void SendCallback(IAsyncResult iar) { UdpState s = iar.AsyncState as UdpState; s.udpClient.EndSend(iar); //sendDone.Set(); } public void StopClient() { udpSend.Close(); udpReceive.Close(); Thread.Sleep(100); } } /// <summary> /// 消息接收事件委托 /// </summary> /// <param name="Sender"></param> /// <param name="e"></param> public delegate void MessageReceivedEventHandle(object Sender, MessageEventArgs e); public class MessageEventArgs : EventArgs { public byte[] buffer; public IPEndPoint remoteIP; public MessageEventArgs() : base() { remoteIP = new IPEndPoint(IPAddress.Any, 0); } } public class UdpState { public UdpClient udpClient; public IPEndPoint ipEndPoint; } ``` 2.当程序启动之后,在程序主窗口类frmMain.cs里开了一个新线程监听指定端口,用于接收UDP数据,然后主窗口程序广播上线消息。 ``` public partial class frmMain : Form { //用于整个程序收发数据的对象 public AsyncUDPclient AsyncUDP; private Thread udplistenthread; private DataReceive startreceive; public frmMain() { InitializeComponent(); _userstate = wawState.SignIn; Rectangle rec = Screen.GetWorkingArea(this); this.ClientSize = new Size(234, rec.Height - 100); this.Location = new Point((int)(rec.Width * 0.8), (int)(rec.Height * 0.05)); this.MaximumSize = new Size(260, rec.Height); this.MinimumSize = new Size(234, 100); this.chTag.Width = 0; this.chUser.Width = (int)(this.lvwUsers.Width * 0.3); this.chIP.Width = (int)(this.lvwUsers.Width * 0.4); this.chHostname.Width = this.lvwUsers.Width - this.chUser.Width - this.chHostname.Width; AsyncUDP = new AsyncUDPclient();//收发数据对象初始化 } private void frmMain_Load(object sender, EventArgs e) { //开启监听线程,新线程执行StartListenUdp方法 startreceive = new DataReceive(lvwUsers, lblUserCount,AsyncUDP); udplistenthread = new Thread(new ThreadStart(startreceive.StartListenUdp)); udplistenthread.IsBackground = true; udplistenthread.Start(); MsgBoardCast boardcast = new MsgBoardCast(AsyncUDP); //boardcast.BoardCast(wawCMD.WAW_BC_SIGNIN); int i = 0; foreach(IPAddress addr in Dns.GetHostEntry(Dns.GetHostName()).AddressList) { if(addr.AddressFamily==AddressFamily.InterNetwork) { cmbIpList.Items.Add(addr.ToString()); if (addr.ToString()==InfoSet.IpPort.Address.ToString()) { cmbIpList.SelectedIndex = i; } i++; } } } } ``` StartListenUdp方法如下(就是调用异步接收类AsyncUDPclient的ReceiveMsg方法开始异步接收): ``` public void StartListenUdp() { AsyncClient.MessageReceived += new MessageReceivedEventHandle(DataConfig); AsyncClient.ReceiveMsg(); } ``` 但是在运行过程中一直很出现异常,貌似是说调用udpclient对象是该对象已经注销,但我检查了很久都没有查处问题,这个问题一直卡了我整整两周时间,实在是没办法了。 以下是调试报错截图: ![图片说明](https://img-ask.csdn.net/upload/201804/13/1523621735_3137.png)
STM8S时钟和串口初始化问题
我用的是IAR编译环境,单片机是STM8S105C4T6,但是在时钟初始化中, CLK__CKDIVR=0x00;这句中的CLK__CKDIVR一直提示找不到这个函数; 并且在串口UART1初始化时也是一样。头文件用的是stm8s.h和stm8s_uart1.h _想问一下这是什么原因_
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
本篇文章主要讲解 token、session 等用户认证方案的区别并分析常见误区,以及如何通过前后端的配合实现完善的访问拦截,为下一步权限控制的实现打下基础。
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
Android 9.0系统新特性,对刘海屏设备进行适配
其实Android 9.0系统已经是去年推出的“老”系统了,这个系统中新增了一个比较重要的特性,就是对刘海屏设备进行了支持。一直以来我也都有打算针对这个新特性好好地写一篇文章,但是为什么直到拖到了Android 10.0系统都发布了才开始写这篇文章呢?当然,一是因为我这段时间确实比较忙,今年几乎绝大部分的业余时间都放到写新书上了。但是最主要的原因并不是这个,而是因为刘海屏设备的适配存在一定的特殊性
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
日均350000亿接入量,腾讯TubeMQ性能超过Kafka
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100) 【导读】近日,腾讯开源动作不断,相继开源了分布式消息中间件TubeMQ,基于最主流的 OpenJDK8开发的
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
相关热词 基于c#波形控件 c# 十进制转十六进制 对文件aes加密vc# c#读取栈中所有的值 c# rsa256加密 好 学c# 还是c++ c# 和java的差距 c# curl网络框架 c# https证书请求 c# 中崎
立即提问