编程相关
jalen_king
记录点滴,分享沉淀
展开
-
设置tortoiseGit拉代码去掉自动CRLF
window换行符CRLF,linux换行符LF,win拷贝到linux会编译出错。解决办法:设置如下,然后删掉本地代码重新拉新代码即可,新代码会看到换行符变为了LF原创 2020-09-29 16:11:53 · 2200 阅读 · 0 评论 -
匈牙利命名法(全)
匈牙利命名法(全)匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。它是由微软内部的一个匈牙利人发起使用的,结果它在微软内部逐渐流行起来,并且推广给了全世界的Windows开发人员。下面将介绍匈牙利命名法,后面的例子里也会尽量遵守它和上面的代码风格。还是那句话,并不是要求所有的读者转载 2017-10-28 09:25:06 · 13099 阅读 · 0 评论 -
笔试题strcpy写法
[精华] 出现频率最高的笔试题strcpy写法http://www.chinaunix.net 作者:HopeCao 发表于:2008-10-30 15:49:14【发表评论】 【查看原文】 【C/C++讨论区】【关闭】题目: 已知strcpy函数的原型是: char * strc转载 2017-07-06 10:48:39 · 549 阅读 · 0 评论 -
__attribute((aligned(n)))与#pragma pack (n)详解
原文地址:http://blog.chinaunix.net/uid-25445243-id-2354324.html字节对齐的方式第一种形式:#pragma pack (n) //指定编译器按照n字节对齐每个变量或数据单元。#pragma pack () //取消自定义对齐方式。另一种方式:__attribute((aligned(n)))__attribute转载 2015-10-09 19:32:52 · 3208 阅读 · 0 评论 -
左值的定义和i++,++i
转载:http://blog.csdn.net/zlhy_/article/details/8349300算下来已经很久以前了,大概有那么几个星期了吧。看到了帖子上有人问为什么下面的语句的对错原因int i = 0;int *ip = &(i++); //错误int *ip = &(++i); //正确看到上面的语句,当时以为两个都是是对的啊,可是当我用转载 2015-09-17 22:26:25 · 669 阅读 · 0 评论 -
contiki_protothread源码
contiki_protothread下载地址:http://dunkels.com/adam/pt/download.html/* * Copyright (c) 2004-2005, Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and bin原创 2015-08-22 15:47:27 · 931 阅读 · 0 评论 -
[代码安全] 小心volatile的原子性误解
编写安全代码:小心volatile的原子性误解 作者:[email protected]博客:blog.focus-linux.net linuxfocus.blog.chinaunix.net 本文的copyleft归[email protected]所有,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,注明原作者及原链转载 2015-03-18 10:05:11 · 526 阅读 · 0 评论 -
[代码安全] 关于全局变量被修改以及volatile的用法
转载地址:http://blog.sina.com.cn/s/blog_5ddb672b0100hi0v.html今天调一个程序的时候发现一个事情,就是全局变量在中断中被改变,代码如下 .....unsigned char num=0;.....INTERRUPT(){ ....num++;....转载 2015-03-18 10:15:46 · 1581 阅读 · 0 评论 -
(*(volatile unsigned int *))详解
(*(volatile unsigned int *))详解 在看 vivi 代码时,Nand_read.c 文件中有下面一段 #define __REGb(x) (*(volatile unsigned char *)(x)) #define __转载 2014-04-08 14:51:16 · 1959 阅读 · 1 评论 -
多维数组的指针类型转换和参数传递
总结: 一维和多维数组的数组名,是一个指针,这个指针指向的是该数组的第一个“元素”。例1: char *p0; char buf0[2] = {1}; p0 = buf0;char *p0; 表示定义一个指向char型的指针。便于理解可以写成char (*p0); *p0是指针,指向 char类型。例2: char (*p1)[4]; char原创 2015-07-10 11:05:15 · 1016 阅读 · 0 评论 -
C语言宏定义中的字符串替换
## 是连接符号,连接两个字符串#是把名字代替成参数中的字符串#define PRINTF(value) printf( #value " = %d/n", value );#define FUNC(arg)void print##arg(void) { printf(#arg " = %d", arg);}FUNC(size);转载 2015-06-28 21:10:51 · 2589 阅读 · 0 评论 -
编译中遇到的异常报错解决
问题报错:/arm-broadcom-linux-uclibcgnueabi/bin/ld: errno: TLS reference in /home/xxxxxx/host/usr/arm-broadcom-linux-uclibcgnueabi/sysroot/usr/lib/libpthread.a(sem_post.os) mismatches non-TLS definition原创 2015-04-23 09:58:55 · 1330 阅读 · 0 评论 -
UNREFERENCED_PARAMETER(arg);的作用
代码中看到C程序里用到了这样的语句:#define UNREFERENCED_PARAMETER(x) do { x = x; } while(0)int Function(void *arg) { UNREFERENCED_PARAMETER(arg); ... /*arg参数在本函数中从未被使用*/} 将上段代码宏展开后:原创 2015-03-18 14:40:36 · 629 阅读 · 0 评论