C程序设计语言(2rd版)阅读中

发布时间 2023-06-10 10:11:12作者: Captain_Amazing

getchar() 和 putchar() 还有就是#define 定义常量, 通常大写以区分变量, while, for 循环和 if 语句

1.9节的程序, 怎么核对都没有问题, 但就是编译报错, 啥错刚开始也不是很仔细查看, 后来回家了, 又打开来反复看, 才发现是函数名称重复, 引起的冲突, 只要把getline重命名就可以了, 比如getsline, 网上也有同仁发这个错误, 但没有找到原因的说明, 解决了总算, 开心。

/* 将一行读入到s中并返回其长度 */
int getsline(char s[], int lim)
{
    int c, i;
    for (i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i)
    {
        s[i] = c; /* 至多复制 MAXLINE - 1 个字符就结束本次读(从索引0到MAXLINE-2) */
    }
    if (c == '\n')      /* 如果因为i = lim -1 退出, 就不能碰到了 \n 因为短路了 */
    {
        s[i] = c;       /* 所以能进到这里, 说明读入的字符少于MAXLINE-1个 */
        ++i;            /* 最后情况有2种,一种是有换行符的, 一种没有, 最后都要加上结束位 */
    }
    s[i] = '\0';                /* 最后一位结束位, */
    return i;
}

这个1.9节的函数名不仅冲突, 理解起来有点费劲, 加上注释应该就好些了 :-)    lim参数值等于MAXLINE

今天发现, 使用vscode + Linux系统(vmware虚拟机), 使用SSH连接, 真的是好搭档, 编辑代码调试都好方便, Linux安装在虚拟机上, 网上教程不要太多, 再安装gcc编译器;vscode安装好后, 

安装chinese语言包, Remote SSH插件,连接到Linux系统, 就可以写.c代码了, 然后再运行, vscode会贴心的提示安装c/c++调试插件,然后整个就跟其它的IDE差不多使用, 偶然所得, 真的好用

至于网上搜得的那些编辑.json啥的, 真的麻烦, 还不知道是啥用的, 也对微软印象加分, 毕竟vscode出自他家的。赞啦!

最后一名话出自这本书: 学习一门新程序设计语言的惟一途径就是使用它编写程序。本来看到练习就不想做, 看来我错了,

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

2023/6/9 晚上21点, 果然还是太枯燥, 看不下去, 放弃暂时