首页 > 其他分享 >C语言犯错集锦

C语言犯错集锦

时间:2024-06-19 16:22:09浏览次数:19  
标签:初始化 INT8U 集锦 len C语言 犯错 bRxdata 定义

.h和.c文件

全局变量定义和声明

报错:
error #10056: symbol "_bChannel" redefined: first defined in "./src/Source/schedule.obj"; redefined in "./src/Source/main.obj"

// 错误:仅在.h中定义并初始化



// 正确:
//  全局变量:需要在.h中用extern声明,在.c中定义并初始化,如果是结构体、需要专门写函数初始化。
//  文件变量:仅仅在.c中使用,只需要在.c中定义并初始化,.h中不用体现。

指针

1、

INT16U SocketRev(INT8U bSocketNum, INT8U *bRxdata, INT32U *dwTxIP, INT16U *wTxPort, INT8U bChannel)
{
	INT32S len = 31 + 2 + 256;
	//memcpy(&bRxdata, (void *) 0x80000000, len); // 错误 已经是指针了,就不必再取地址了。
    memcpy(bRxdata, (void *) 0x80000000, len); // 正确
	return 0;
}

标签:初始化,INT8U,集锦,len,C语言,犯错,bRxdata,定义
From: https://www.cnblogs.com/sybil-hxl/p/18256495

相关文章

  • C语言 计算平闰年,某个月有多少天
    #include<stdio.h>intisLeapYear(intyear){   if((year%4==0&&year%100!=0)||(year%400==0))       return1; //闰年返回1   return0; //平年返回0}intgetDaysInMonth(intyear,intmonth){   intdays;   sw......
  • C语言开发日志,问题记录(长期更新版本)
    一、程序存储与占用1.编译后内存分配编译后的Code(代码),RO-data(只读,譬如const),RW-data(读写,初始化非0的全局变量),存储在ROM(flash)中,ZI-data(初始化为0或者未初始化的变量),运行时ROM占用是Code+RO-data+RW-data运行时RAM占用是RO-data+RW-data+ZI-data;RW和ZI会被......
  • C语言实现三子棋游戏
    三子棋我们再熟悉不过了,但是如何用C语言制作三子棋游戏呢?首先我们用*号代表玩家下棋;我们用#号代表电脑下棋;接着我们可以通过输入坐标来控制棋子的输入,而电脑通过随机数的来下棋。用模块化编程,将一个游戏分成3个文件来制作,分别为主文件test.c来执行主函数main、其次是注册函数......
  • 【C语言】信号
    【C语言】信号信号1.信号状态2.信号处理方式3.信号注册相关函数4.信号集相关函数最后信号1.信号状态信号有三种状态:产生、未决和递达信号产生方式:按键产生,ctrl+c产生中断信号SIGINT,ctrl+\产生退出信号SIGQUIT并生成core文件,ctrl+z产生停止信号SIGSTO......
  • 【C语言】数组参数和指针参数详解
    在写代码的时候难免要把【数组】或者【指针】传给函数,那函数的参数该如何设计呢?1一维数组传参#include<stdio.h>voidtest(intarr[])//ok?{}voidtest(intarr[10])//ok?{}voidtest(int*arr)//ok?{}voidtest2(int*arr[20])//ok?{}voidtest2(int**arr)//ok?......
  • C语言队列操作及其安全问题
    在C语言中,队列是一种常用的数据结构,特别适用于嵌入式开发中的任务调度、缓冲区管理等场景。下面是一个简单的循环队列的模板代码,它使用数组来实现队列,并提供了基本的入队(enqueue)和出队(dequeue)操作。示例代码如下:#include<stdio.h>#include<stdbool.h>#include<string.h>......
  • C语言结构体位域的使用技巧(联合体妙用)
    C语言结构体位域的使用技巧基本概念在C语言中,位域(BitFields)是一种数据结构,它允许程序员访问内存中的单个位。位域通常用于硬件编程,例如嵌入式系统开发,因为它们允许程序员直接访问和控制硬件寄存器的特定位。位域在不同的编译器和平台上可能会有不同的内存对齐和打包行为,......
  • 复习与回顾(C语言)
    学习三阶段:初识——>初阶——>进阶注:蓝色字体皆可跳转一阶:初识1.基本了解C语言的基础知识,对C语言有一个大概的认识2.简单认识每个知识点,后期在初阶和进阶进行详细描述学习内容1.什么是C语言2.第一个C语言程序3.数据类型4.变量、常量5.字符串、转义字符、注释......
  • 实现CHECKSUM的C语言程序
    什么是校验和?在计算中,校验和是使用算法从较大的数据集创建的小数据,目的是对较大的数据集所做的任何更改都会导致不同的校验和。校验和通常用于验证已传输或存储的数据的完整性,因为数据中的错误或修改可能会导致校验和更改。它们还可用于验证数据的真实性,因为校验和通常是使用......
  • C语言 - 标识符
    C语言中的标识符有助于识别C代码中的变量、常量、函数等。C是一种高级计算机语言,它允许您使用名称引用内存位置,而不是以二进制或十六进制形式使用其地址。C标识符标识符是用户定义的名称,以便于引用内存。它还用于定义程序中的各种元素,例如函数、用户定义类型、标签等。......