最近在阅读《C Primer Plus》这本书,复习一下C语言的基础知识(多年没用忘光光了),目的是想学习CUDA和DeepStream。《C Primer Plus》总共有730页,看完全部再去学CUDA是不现实的,因此得先看最基础的部分,第一步以能看懂CUDA示例代码为准,以下列向量相加的CUDA代码为例:
#include
C语言新手读者看不懂没关系,上面这部分代码主要实现的是把两个含有50000个随机数字的数组,对应位置相加的功能,里面涉及到变量初始化、指针初始化、if判断、for循环、内存申请、字符串格式化输出等等C语言的基础概念,换言之我们学完这些部分就能看懂上面这份代码了。
《C Primer Plus》这本书一共有17章。第1、2章介绍了C语言编程的预备知识。第3~15章详细讲解了C语言的相关知识,包括数据类型、格式化输入/输出、运算符、表达式、语句、循环、字符输入和输出、函数、数组和指针、字符和字符串函数、内存管理、文件输入输出、结构、位操作等。第16章、17章介绍C预处理器、C库和高级数据表示。
笔者的阅读顺序是:
- 第1章 初识C语言
- 第2章 C语言概述
- 第3章 数据和C
- 第4章 字符串和格式化输入/输出
- 第5章 运算符、表达式和语句
- 第6章 C控制语句:循环
- 第7章 C控制语句:分支和跳转
- 第8章 字符输入/输出和输入验证
- 第9章 函数
- 第10章 数组和指针
- 第12章 存储类别、链接和内存管理
- 第14章 结构和其他数据形式
哈哈,看到这里的时候你可能会问,17章的内容你让我看了12章,还说不多???实际上每一章里面的内容不需要逐字逐句的看完,看工具书的关键是,先把概念理清了,比如什么是long类型的变量,它有什么作用,而至于它能表示多少位数,不必记住,需要用到的时候回来查一下就好。假如你学过其它的语言,比如python,里面有些内容本质是相通的,比如for循环、while循环,只是表达的方式不一样而已,所以这类概念通过类比学习,能很快地理解是怎么用的了。如果看得快的话,一小时看几十页也不是问题。
这本书的特点在于,它不会死板地介绍完一个内容再到另一个内容,而是在一个主线中,穿插一些别的内容一起介绍。比如在讲字符串的时候,可能会穿插一些函数的内容;在第一二章介绍C语言的时候,也会教你什么是编译器,怎么编译你的代码并执行(很多教材往往教完你编程之后,你会发现连怎么执行它都不知道)。书本的内容比较多(整整730页),但会在段落中介绍一些经验之谈,例如写代码的好习惯、有哪些需要注意的坑等等,看这本书会有一种作者在与你聊天、手把手教学的感觉!
快速了解完上面的内容,你基本能看懂开头的代码了。事实上,你需要在看书的间隙中,时不时回来看看这段代码,看你读懂了多少,哪些还不了解,这样才能给你一个很好的学习反馈,让你知道你的进度到哪了。能看懂代码之后,就跟着教程一段一段代码抄一下吧,在抄代码的过程中你会慢慢巩固所学的知识,任何一种编程语言都是抄多了就会写了。
技术之路漫漫长,大家互勉。
学习资料:
- CUDA文档:https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/index.html
- 《C Primer Plus》豆瓣书评:https://book.douban.com/subject/26792521/
- Nvidia官方视频CUDA教学:https://www.nvidia.cn/developer/online-training/dli-community-training/
本文首发于我的个人博客-铁人贾斯廷的基地:
https://ijst.me/wp/2020/02/24/学习cuda最少需要多少c语言知识?
博客里面有更多有趣的技术内容、IronMan相关、B站视频等等,欢迎来玩:
铁人贾斯廷的基地 | 技术宅的碎碎念ijst.me