编程中的疑难杂症

在学习编程和写代码的过程中,应该都或多或少会遇到以下困惑。这些问题和知识点对菜鸟来说真是苦不堪言,然而书上总是一笔带过,或者讲得不清晰易懂,大部分问题还是得网络上到处搜索相关的资料。

虽然不搞清楚这些东西,还是可以继续完成软件需求,但总感觉飘在云端,很不踏实。

现在把他们列举出来。以后有时间就写一部分。逐个击破。

    1. 字符集,字符编码,乱码
    2. 数据类型在内存中的结构
    3. 大端(BigEndian)与小端(LittleEndian)
    4. 变量/函数的声明、定义、初始化
    5. c指针的理解,汇编角度
    6. const static restrict 变量修饰符
    7. const指针与指向const变量的指针 函数指针
    8. 内存溢出、空指针,变量的类型转换
    9. include extern c作用域 头文件和.c源文件
    10. 动态链接库,静态链接库
    11. 程序的编译运行过程,gcc命令
    12. Makefile文件
    1. c/c++的宏与typedef
    2. 内核空间与用户空间,系统调用与系统接口、API,POSIX与XSI
    3. 进程与线程
    4. shell运行程序的原理,exec,fork
    5. 进程在内存空间的上下文结构,堆和栈
    6. 环境变量
    7. 流、文件、缓冲区、IO、标准输入、标准输出
    8. 流的冲洗、字符回显、流阻塞与非阻塞
    9. 重定向、管道
    10. 脚本文件运行原理
    11. linux文件系统的模型,目录、文件、文件表、i节点
    12. linux的文件权限和进程权限机制
    13. UNIX与Linux 各版本以及关系
    14. UNIX与Linux的约定俗成的惯例和设计方法
    15. GNU项目以及GNU、BSD、MIT开源许可
    16. 面向连接与非连接,数据报和流
    17. 阻塞与非阻塞
    18. 信号的重入
    19. 异步与同步
    20. 正则表达式
    21. Git版本控制
    22. 网络数据中的段、包、帧
    23. 网络各层次常见的协议
    24. 代理与反代理,vpn,洋葱路由
    25. JAVA jvm 、jre、jdk
    26. 解释型语言和编译型语言,半解释型语言,动态语言与静态语言,脚本语言
    27. 函数式语言、面向过程语言、面向对象语言
    28. 跨平台、跨系统、跨架构
    29. CPU指令集,系统位宽、寻址宽度,总线宽度、寄存器
时间: 2024-10-27 05:27:40

编程中的疑难杂症的相关文章

一文读懂高性能网络编程中的I/O模型

1.前言 随着互联网的发展,面对海量用户高并发业务,传统的阻塞式的服务端架构模式已经无能为力.本文(和下篇<高性能网络编程(六):一文读懂高性能网络编程中的线程模型>)旨在为大家提供有用的高性能网络编程的I/O模型概览以及网络服务进程模型的比较,以揭开设计和实现高性能网络架构的神秘面纱. 限于篇幅原因,请将本文与<高性能网络编程(六):一文读懂高性能网络编程中的线程模型>连起来读,这样会让知识更连贯. 学习交流: - 即时通讯开发交流3群:185926912[推荐] - 移动端IM

shell编程中for,while,util,case,select,break, continue用法详解

关于shell脚本的更多详细实例讲解请参考:http://www.cnblogs.com/yuexiaxiaoxi/category/646749.html Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for.while和until.while循环和for循环属于"当型循环",而until属于"直到型循环".循环控制符:break和continue控制流程转向. 参考:<Linux 与unix shell 编程指

Win32编程中如何处理控制台消息

这篇文章讨论如何处理所有的控制台消息. 第一步,首先要安装一个事件钩子,也就是说要建立一个回调函数.调用Win32 API,原型如下: BOOL SetConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine, // 回调函数BOOL Add // 表示添加还是删除): 参数HandlerRoutine是一个指向函数的指针,原型如下: BOOL WINAPI HandlerRoutine(DWORD dwCtrlType // 控制事件类型): 所有的

Unix网络编程中的五种I/O模型_转

转自:Unix网络编程中的的五种I/O模型 下面主要是把unp第六章介绍的五种I/O模型. 1. 阻塞I/O模型 例如UDP函数recvfrom的内核到应用层.应用层到内核的调用过程是这样的:首先把描述符.接受数据缓冲地址.大小传递给内核,但是如果此时 该与该套接口相应的缓冲区没有数据,这个时候就recvfrom就会卡(阻塞)在这里,知道数据到来的时候,再把数据拷贝到应用层,也就是传进来的地址空 间,如果没有数据到来,就会使该函数阻塞在那里,这就叫做阻塞I/O模型,如下图: 2. 非阻塞I/O模

Python编程中自定义Lambda函数的使用场景

Python 中定义函数有两种方法,一种是用常规方式 def 定义,函数要指定名字,第二种是用 lambda 定义,不需要指定名字,称为 Lambda 函数. Lambda 函数又称匿名函数,匿名函数就是没有名字的函数,函数没有名字也行?当然可以啦.有些函数如果只是临时一用,而且它的业务逻辑也很简单时,就没必要非给它取个名字不可. 好比电影里面的群众演员,往往他们的戏份很少,最多是衬托主演,跑跑龙套,他们需要名字吗?不需要,因为他们仅仅只是临时出镜,下次可能就用不着了,所以犯不着费心思给他们每个

用java网络编程中的TCP方式上传文本文件及出现的小问题

自己今天刚学java网络编程中的TCP传输,要用TCP传输文件时,自己也是遇到了一些问题,抽空把它整理了一下,供自己以后参考使用. 首先在这个程序中,我用一个客户端,一个服务端,从客户端上传一个文本文件给服务端,服务端接收数据并显示“上传成功”给客户端. 客户端: 1 import java.io.BufferedReader; 2 import java.io.FileReader; 3 import java.io.IOException; 4 import java.io.InputStr

在windows下的QT编程中的_TCHAR与QString之间的转换

由于在windows下的QT编程中,如果涉及到使用微软的API,那么不可避免使用_TCHAR这些类型,因此在网上查了一下,其中一个老外的论坛有人给出了这个转换,因此在这里做一下笔记 : )#ifdef UNICODE #define QStringToTCHAR(x)     (wchar_t*) x.utf16() #define PQStringToTCHAR(x)    (wchar_t*) x->utf16() #define TCHARToQString(x)     QString:

Java编程中“为了性能”尽量要做到的一些地方

下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方. 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步来控制资源的并发访问: 第二,控制实例的产生,以达到节约资源的目的: 第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信. 2. 尽量避免随意使用静态变量 要知道,当某个对象被定义为stataic变量所

GPU编程中的常用数学函数

在GPU编程中,函数一般分为以下几种类型:数学函数.几何函数.纹理映射函数.偏导数函数.调试函数等.熟练利用好GPU自带函数,可以在一定程度上提高并行编程速度与效率. 关于数学数学函数(Mathematical Functions) 数学函数用于执行数学上常用计算,比如:三角函数.幂函数.向量和矩阵函数,这些函数一般都被重载,用来支持标量数据和不同长度的向量作为输入参数.列表如下: 标准函数库中的数学函数 未完待续......