C语言相关问题(1)
2011-04-28 23:25 Clingingboy 阅读(687) 评论(0) 编辑 收藏 举报
1._tcslen(".....")和stlen(".....")的区别
http://topic.csdn.net/u/20101115/22/4f15d24a-f77a-4298-91d5-9082a2b510d3.html
_t开头的函数都是如此
2.结构体对齐问题
参考:http://www.cnblogs.com/motadou/archive/2009/01/17/1558438.html
http://blog.csdn.net/jiangnanyouzi/archive/2009/01/16/3793864.aspx
比如下面结构体
struct A
{
double d;
int i;
char c;
};
struct A1
{
int i;
double d;
char c;
};
用sizeof测试出来是16和24
3.函数传字符串
下面三个函数均以第一个函数为准
void fun1(char *a)
{
}
void fun2(char a[5])
{
}
void fun3(char a[])
{
}
4.结构体命名规范
4.1.tag前面加前缀_,字母全大写
typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *PFILETIME, *LPFILETIME;
4.2用tag开头,后面接大写
typedef struct tagPOINT
{
LONG x;
LONG y;
} POINT, *PPOINT, NEAR *NPPOINT, FAR *LPPOINT;
5.指针定义的字符串
其为只读,不可改,但可以总体重复赋值,即指向了其他地方
char *a="hello";
char b[]="hello";
a[0]='1';//wrong
b[0]='1';//right
char *a="hello";
char b[]="hello";
a="world";//right
b[0]='1';//right
6.输入输出预定义变量
如下:__out和__in标识参数的输入与输出
WINUSERAPI
BOOL
WINAPI
SetRect(
__out LPRECT lprc,
__in int xLeft,
__in int yTop,
__in int xRight,
__in int yBottom);
还有纯粹的IN和OUT定义,作为参数提示
#ifndef IN
#define IN
#endif
#ifndef OUT
#define OUT
#endif
7.指针++问题
int main()
{
int a=1;
int *pa=&a;
//更改了指针地址
pa++;
*pa=2;
pa++;
*pa=3;
pa=&a;
//更改了指针地址
pa++;
int b=*pa;
pa++;
int c=*pa;
//同上效果
pa=&a;
int b1=*++pa;//*(++pa)
int c1=*++pa;
pa=&a;
//更改pa指向的值
int b2=++*pa;//++(*pa)
int c2=++*pa;
//后缀++
*pa=1;
int b3=*pa++;//*(pa++)
int c3=*pa++;
}
八.指针索引
可以直接指针索引值
int a=1;
int *pa=&a;
pa++;
*pa=2;
pa++;
*pa=3;
pa=&a;
int i=pa[2];
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2006-04-28 使用数据源控件简化操作(2)