网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
03月11日漏签0天
c语言吧 关注:801,934贴子:4,376,735
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 3 下一页 尾页
  • 83回复贴,共3页
  • ,跳到 页  
<<返回c语言吧
>0< 加载中...

从头看一遍《C和指针》,随手写一些经验和感悟吧

  • 只看楼主
  • 收藏

  • 回复
  • ToFourier
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不定时更新。主要说一下自己对里面的一些理解。从头开始。


  • ToFourier
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我下面的软件调试以VS2005为工具。也欢迎问问题的,可以分析,但是不代写代码。编程还是要靠自己的。


2026-03-11 23:25:55
广告
不感兴趣
开通SVIP免广告
  • ToFourier
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
第一章 快速上手
直接从1.1.1开始。前面那段程序可以不用看,没学过C的话看了也是一头雾水。
我们说说空白和注释。
关于空白:
为了代码看起来规范易读。常用的就是tab键按层次缩进。
关于注释:
刚开始写程序的时候总是不喜欢写注释,后来花了很长时间才培养了注释的习惯。
为什么要写注释?注释有什么用呢?答案就是便于理解,便于维护。以后再看的时候,你自己都不一定知道自己当初写的代码是什么意思,真的,我曾经就是。
什么时候需要注释呢?当你建立了一个工程,文件较多,函数较多,相互之间调用较多,这个时候你就需要注释了。当然如果你就几十行代码,不写也罢。
注释怎么写呢?单行注释以”//”开始。多行注释以”/*”开始,以”*/”结束。
对于变量的注释,简要说明变量用途即可: int g_readCnt; // 读取次数计数
对于函数的注释,最少要有这几个信息:1.函数的用途;2.参数的意义;3.返回值说明。比如:
/******************************************************************************************
// @fn: Jlib_Xor 异或计算
// @Param: buf需要计算的buf指针
// len 从buf开始的计算长度
// @return: 异或值
// CreateDate:
// Modify:
// Author:
********************************************************************************************/
Jl_uint8Jlib_Xor(pJl_uint8 buf,Jl_uint32 len);


  • ToFourier
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1.1.2 预处理命令
#define 的作用是很强大的。你可以把它理解为一种替换。比如定义#define MAX_NUM 8,那么程序中凡是遇到MAX_NUM都会自动替换成8。
预处理命令有两点需要注意,
1.是#define语句后什么都不跟,不可以跟”;”。
2.在使用#define时要注意在替换后可能会发生的错误。试试比较#define SQURE(x) x*x和#define SQURE(x) (x)*(x)。
我们逐个分析一下。首先是最糟糕的这种#define SQURE(x) x*x。在int x = SQURE (2);时是可以正常使用的,但是int x = SQURE (2+3)时,你期望输出25,但是实际上你得到的值是11.为什么呢?看一下怎么替换的,2+3替换x后得到的是2+3*2+3=11.问题产生的原因是运算符优先级。解决方法就是使用”()”运算符。
更多的预处理命令后面再说。


  • ToFourier
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1.1.2 main函数
凡是程序,都需要一个入口。而main函数就是这个入口,程序从这里开始执行。不同的环境下,main函数的写法是不同的,但作用都一样。像我们常见void main(),int main(),VS2005控制台默认的main函数是int _tmain(intargc, _TCHAR* argv[]),win32默认的main函数是int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)等等等等。
目前需要知道的就是每个程序都一定会有一个main函数,这里是程序运行开始的地方。


  • ToFourier
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
后面几节就不说了,直接跳到第二章,不过还是建议看一下。


  • ToFourier
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
2.1 环境
使用命令行的话,需要看这个。个人对这个没怎么用过,所以在这里不讲了,免得误导了别人。我都是直接用vs的。
2.2.1 字符
主要注意一下转义字符。
2.2.2 -2.2.3 看书吧,没什么好说的。
2.2.4 标识符 变量、函数、类型的名字不能和关键字重复。
其他的看书吧,没什么好说的。


  • 农村二杆子额
  • 团子家族
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
无聊


2026-03-11 23:19:55
广告
不感兴趣
开通SVIP免广告
  • 寻
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
留名


  • ToFourier
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
第三章 数据类型
C语言里有4种基本数据类型:整型、浮点型、指针、聚合类型(数组、结构等)。
3.1.1 整型
字符、短整型、整形、长整型。每一种又都分为有符号和无符号两种。由于编译器的不同,有时候在不同环境下,位数并不一定是一样的。一般而言字符型8位,整型16位,长整型32位。具体的还是要看变异环境。
就我个人而言,喜欢用下面的方式来定义数据,以方便程序移植。
我会建立一个头文件”commDefine.h”
在这里我会这样声明
// 数据类型定义
typedef char CHAR;
typedef signedchar S8;
typedef signedshort int S16;
typedef signedint S32;
typedef unsignedchar U8;
typedef unsignedshort int U16;
typedef unsignedint U32;
typedef float F32;
typedef double F64;
typedef signedint BOOL;
当我发现我使用的数据类型不兼容于当前的环境时,我就修改typedef。


  • AS魇梦蚀
  • 帕秋莉糕
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
顶。!


  • ToFourier
  • 强能力者
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
还是有必要说明一下枚举类型。
枚举类型常用于已知的固定的场合。比如曾经做过的一个项目中,需要控制许多个电机,为了使用方便。
// 电机枚举类型
typedef enum
{
ADD_SAMPLE_UD_M, // 加样升降电机
ADD_SAMPLE_D_M, // 加样转向电机
DISK_M, //圆盘电机
ADD_SAMPLE_M, // 加样电机
MAG_BEAD_M, // 磁珠搅拌电机
}MOTOR_GROUP1_ID;
MotorParam g_mGroup1Param[MAX_MOTOR_GROUP1_NUM];
在我需要用到某个电机时
g_mGroup1Param[ADD_SAMPLE_UD_M].pulParam.mPin.GPIO_Pin= M_AS_UD_PUL; // 脉冲光耦
这样写的好处就是便于理解代码。当然你可以不用这种方式,直接使用数字或者宏定义也可以。
需要注意的是如果不显式的赋值,那么默认从0开始,并依次递增。也就是等效于下面
typedef enum
{
ADD_SAMPLE_UD_M = 0, // 加样升降电机
ADD_SAMPLE_D_M = 1, // 加样转向电机
DISK_M = 2, // 圆盘电机
ADD_SAMPLE_M = 3, // 加样电机
MAG_BEAD_M = 4, // 磁珠搅拌电机
}MOTOR_GROUP1_ID;


  • juydse
  • 麻婆豆腐
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
火前留名


  • 尽_言
  • 马猴烧酒
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
带一个骗子@绝对帝企鹅 来给楼主顶帖,我只是个学生 存点钱真的不容易, 用我的经历 警惕大家 千万别买号 可能高兴的心情 回头来伤心万分 由于楼主蒙逼了下 聊天记录没截到 就被他拉黑了 。 心痛过后 就好了 也不想什么骂不骂的


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 3 下一页 尾页
  • 83回复贴,共3页
  • ,跳到 页  
<<返回c语言吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示