好的代码需要好的敲代码习惯

本文探讨了养成良好编码习惯的重要性,如使用assert断言确保指针有效性,常量指针的应用,以及规范的编码风格和注释。通过实例展示了如何用my_strcpy和my_strlen模拟标准库函数,以体现这些原则在实际编程中的应用。

敲出好的代码需要养成好习惯,对未来就业,面试等都有裨益

好的代码需要
1.使用assert(断言)
#include <assert.h>
2.尽量使用const(可修饰指针)
const放*左边(const int * p) 修饰*p,表示p指向的对象不能通过p改变,但p中的地址可改变
const放*右边(int * const p) 修饰 p, 表示p的内容不能被改变,但p指向对象可通过p改变
3. 养成良好的编码风格
4. 添加必要的注释
5. 避免编码的陷阱。

举例

模拟strcpy

#include <stdio.h>
char* my_strcpy(char* dest, const char* src) //保证src不变
{
    assert(dest && src); //断言两个均不为空指针
    char* ret = dest;  //保存初始位置
    while(*dest++ = *src++) 

    //将src指针指向的对象复制到dest中直到src指向的对象为'\0'时,循环结束
    {
        ;
    }
    return ret;
}

int main()
{
    char arr1[] = "hello bit";
    char arr2[20] = "xxxxxxxxxxxxx";

    printf("%s\n", my_strcpy(arr2, arr1)); 
    return 0;
}

举例

模拟strlen

#include <stdio.h>
int my_strlen(const char *str) //保证str不变
{
    int count = 0;
    assert(str != NULL); //断言不是空指针

    while(*str)  //判断字符串是否结束 即指针所指对象不为/0  ,ASCII码不为0
   {
        count++;
        str++;
   }
    return count; 
}

int main()
{
    const char* p = "abcdef";
    //测试
    int len = my_strlen(p);
    printf("len = %d\n", len);
    return 0; 
}

### 可能导致VSCode编写代码时卡顿的原因 在使用 Visual Studio Code (VSCode) 编写代码的过程中,如果出现卡顿现象,通常是由以下几个因素引起的: 1. **大项目文件** 如果当前项目包含大量的文件和复杂的依赖关系,则 VSCode 需要花费更多时间去解析这些文件并生成相应的索引数据。这种情况下,代码补全和其他智能功能可能会变得迟缓[^1]。 2. **扩展冲突或过多扩展加载** 安装了过多的扩展或者存在相互之间有冲突的扩展也可能引起性能下降。部分低质量或未优化好的扩展会在后台执行耗时操作,进而拖累整个编辑器的表现。 3. **不合适的Python环境配置** 当前使用的 Python 虚拟环境中可能存在不必要的包或者是版本较旧的库文件,这些问题同样可以影响到 Pylance 或者其他语言服务的工作效率[^1]。 4. **硬件资源不足** 开发机器本身的内存大小、CPU 性能等因素也会直接影响到 VSCode 的运行状态。尤其是在打开多个大型文档或是同时开启很多标签页的时候更容易发生卡滞情况。 5. **设置不当** 默认的一些设置选项如果不适合特定用户的使用习惯的话也有可能引发意外的问题比如启用实验性的 JavaScript/TypeScript 特性检测等功能可能导致额外负担。 --- ### 解决方案 以下是几种有效的方法来改善 VSCode 在编码期间可能出现的卡顿状况: #### 方法一:创建独立的虚拟环境 对于 Python 项目来说,建立专门用于该项目的虚拟环境是非常重要的一步。这样不仅可以隔离各个项目的依赖管理还能减少全局环境下冗余模块带来的干扰。具体命令如下所示: ```bash python -m venv .venv ``` 之后记得更新 settings.json 文件中的 python.defaultInterpreterPath 字段指向新创建出来的路径位置以便让插件正确识别该环境下的可用库列表[^1]。 #### 方法二:禁用不需要的扩展 定期审查已安装的所有扩展程序清单,并移除那些长期不用却仍然保持激活状态的应用组件。可以通过访问 Extensions 视图 (`Ctrl+Shift+X`) 来查看哪些插件正在消耗较多的时间启动以及它们各自的状态信息。 另外还可以尝试切换至推荐的基础集合模式即只保留官方维护的核心类别之外其余全部卸载然后再逐步添加回来观察效果变化趋势如何。 #### 方法三:调整用户偏好设定参数 修改 workspace 和 user level 层面的相关属性值有助于进一步提升整体流畅程度。例如关闭自动导入特性或将最大 worker 数量限制在一个合理范围内等等均属于常见的调优手段之一。 ```json { "editor.suggestSelection": "first", "intellisense.mode": "default", "files.watcherExclude": { "**/.git/**": true, "**/node_modules/**": true }, "[javascript][typescript]":{ "editor.maxTokenizationLineLength":8000 } } ``` 以上 JSON 片段展示了几个常用的自定义项实例其中包含了排除指定目录监视范围降低 I/O 压力;提高语法高亮的最大长度阈值适应超长行数场景需求等内容。 #### 方法四:清理临时文件重置布局 有时候简单的重启并不能完全解决问题因此有必要手动删除存储于 %APPDATA%\Code\Caches 下的各种中间产物重新构建初始界面结构或许就能恢复正常的运作秩序。 最后考虑升级最新稳定版软件本身因为每次迭代都会修复不少之前存在的缺陷并且引入新的改进措施所以及时跟进官方发布的公告也是很有必要的举措之一[^2]. --- ### 结论 综上所述,通过采取诸如设立专属虚拟环境、精简多余附加组件、精细化调节各项开关标志位等一系列针对性策略完全可以显著缓解乃至彻底消除原本困扰我们的卡顿难题。当然实际应用当中还需要结合具体情况灵活运用上述技巧才能达到最佳成效。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值