
编程语言
本专栏记录一些日常工作过程中使用编程语言的重要知识点和容易混淆的知识点。
多多吃青菜
目前从事GUI、OSD相关工作,平时喜欢看驱动开发相关知识。
展开
-
【c语言】绝对定位
C语言中的关键字__attribute_____attribute__( at(绝对地址) )的作用分两个,一个是绝对定位到Flash,另个一是绝对定位到RAM。1、定位到flash中,一般用于固化的信息,如出厂设置的参数,上位机配置的参数,ID卡的ID号,flash标记等等const u16 gFlashDefValue[512] __attribute__((at(0x0800F000))) = {0x1111,0x1111,0x1111,0x0111,0x0111,0x0111};//定位在fl原创 2020-08-11 22:13:59 · 690 阅读 · 0 评论 -
【c语言】字符指针、指针数组、数组指针、野指针和void*
字符指针与字符串:char buf[100] = "hello";char *s = "hello"; //把字符串的首地址存入s中**s = 'e'; //error, 因为"hello"存放在字符串常量区, 所以不能修改s = buf; //right, 因为s是变量,所以s可以修改*s = 'e'; //right, 因为s指向buf,现在改变的是buf中额内容指针数组: 数组, 数组元素是指针的数组int* a[5]; //拥有5个int *类型(32位地原创 2020-05-14 17:08:23 · 253 阅读 · 0 评论 -
【c语言】一级指针和二级指针的关系
int main(){ char a; char* p = &a;//一级指针只能赋予变量的地址 char** p1 = &p;//二级指针只能赋予一级指针的地址 char *p2 =p;//一级指针只能赋予变量的地址}“一级指针存储变量的地址,二级指针存储一级指针的地址”...原创 2020-05-14 09:45:57 · 352 阅读 · 0 评论 -
【c语言】一维数组和二维数组的关系及a+1和&a+1区别
首先来看一段函数#include <stdio.h>int main(){ int a[3][2] = {1,2,3,4,5,6};//定义二维数组 int i,j; printf("a的地址:%p\n",a); for(i = 0; i < 3; i++) { printf("a[%d]的地址:%p\n", i, a[i]); } for(i = 0; i < 3; i++) { for (j = 0; j < 2; j++) prin原创 2020-05-13 15:52:47 · 2088 阅读 · 2 评论 -
【c语言】字符串常量到底存放在哪个存储区
字符串常量,放在哪个存储区呢?是“自动存储区”还是“静态存储区”中?比如:char *pstr=“hello world!”;这里,"hello world!"是一个字符串常量,pstr是在栈中的变量。我想问,字符串常量,在哪个内存区域分配空间呢?好像应该不是在“栈区“分配空间吧!!!一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区转载 2020-05-13 11:41:02 · 11292 阅读 · 7 评论 -
【c语言】char str[]与char *str的区别
今天做题的时候遇到一个问题,如何实现一个函数返回一个指针,返回一个整型值很简单,因为“C语言是按值传递的”,而想要返回一个指针,比如char型的指针,然后想在主调函数中使用被调函数的返回指针,分析了一下关于char str[]和char *str的区别下面介绍一下char str[]="hello"与char *str="hello"的区别char str[]=“hello”;第一个表达式表示的是在动态变量区中开辟一个能连续放6个字符的数组,数组名称是str.而赋值运算符右边是一个字符串常量,这个字符转载 2020-05-12 21:27:50 · 849 阅读 · 5 评论 -
【c语言】printf函数格式
printf ---- 格式化输出函数printf("格式控制串", 输出表); 参数: 输出表:想要输出的数据(个数0~n) 格式控制串: %格式 --- 用对应的值替换 其他字符原样输出 例: int a = 100; printf("a = %d\n", a); 结果: a = 100 格式: d/i --- 打印十进制int整数 hd --- short整数 ld --- long类型整数 lld --- long long整数原创 2020-05-21 16:31:30 · 871 阅读 · 0 评论 -
【c语言】算术优先级
一个表达式可以包含多个运算符。在这种情况下,运算符的优先级决定表达式的哪部分被处理为每个运算符的操作数。 例如,按照运算规则,表达式中 *、/、以及 % 的优先级比 + 和 - 高。如下列表达式:a - b * c相当于 a - (b * c)如果想让操作数以不同的方式组合在一起,则必须使用括号,如:(a - b) * c此时先计算a-b的值再与c相乘如果一个表达式中的两个操作数具有相同的优先级,那么它们的结合律(associativity)决定它们的组合方式是从左到右或是从右到左。 例如,原创 2020-05-14 19:14:23 · 2318 阅读 · 0 评论 -
【c语言】代码规范
代码规范三、注释1)、注释原则//项目开发中,尽量保持代码注释规范和统一。 //注释方便了代码的阅读和维护。 //边写代码边注释,修改代码时要相应修改注释,保证注释和代码的一致性。 //注释要简洁明确,不要出现形容词。 //通过注释可以快速知道所写函数的功能,返回值,参数的使用2)、文件头部注释/**************************************...原创 2020-04-11 15:42:57 · 997 阅读 · 0 评论