一篇关于c语言的大补帖

一篇关于c语言的大补帖

一晃今年又开始了,作为一个失意的中年技术男,现在的心境真的是五味杂陈。赶紧写一篇吧,我怕过了这个点,今年就在没有那个心情去写了。

因为是基础嘛,从事软件开发以来c或者c++相关的东西断断续续 也刷了差不多一遍。中间看的书差不多有 c++游戏编程入门教程,vc++深入详解, c++ primer plus ,c程序设计语言。

 

c语言和c++以及一些其它高级语言的区别

与其它语言相比c++是一个开放式的开源的所谓的众人拾柴火焰高的解决方式,只规定了基本的语法和约定 各种其他,比如编译器都由各个厂商自己去实现 比如多线程没有  各种只要跟操作系统接口相关的  那么说白了还是不能跨平台的 所谓的跨平台只是说这个基本语法和格式约定 在各个平台编译大差不差。实际上这个众人拾柴还是火焰没高起来 。不如微软c#那种一揽子方案来得舒服。然后说说c++与纯c,纯c里面并不支持string 也不支持include<string> 可以说是刀耕火种的地步了 ,std库不用说更是不支持。其实想想c++已经算是比较高级方便的了 。说归说 接触了c51  msp430 stm32 还是能够发现一些端倪的 ,从最初引导芯片进入首条指令执行的那几句汇编 为萌芽 到后面不断的喂指令 不断的循环 地址偏移 ,跳转 判断, 开启了 后面以软件为主题的这个学科  编程嘛 条件判断嘛 内存嘛 数据嘛   进程嘛  巴拉巴拉,像极了世界的一生二二生三三生万物,人类在芯片上运行程序进行流程控制 计算机最基础的雏形 关键之处 也在于此,汇编或者c语言正符合这种最初级的需求,你会发现原来这就是所谓的裸机编程 并没有操作系统上层一堆的东西参与也没有库,一切都是刀耕火种 ,不是说它多么的高深多么难 其实就是这么的纯粹而已。 但是基于它的这种直接内存控制的高效机制 所以做底层算法的 大多还是用C++这玩意儿。对于初学者某些东西如果开始选择难的如果弄不出来是很容易消磨人的意志的 ,作为普通人谁不想拖拖鼠标就能做出来功能呢。还有所谓的动态内存分配,在c++里所谓的动态内存分配概念就是一个函数大括号下来里面运行的东西叫自动变量 放在栈上 ,括号结束即从栈上清除掉,动态内存就仅是指new出来的东西 方法运行结束了还没消失的东西,搞了单片机那一套后才发现  也就几百行的程序就算大程序了 并且也根本用不上所谓的动态内存分配 ,根据cpu的时钟频率 ,简单粗暴的的单线程循环 代表cpu的一个运转周期 ,恍然觉得最简单的编程原来可不就是这样吗,值处理和指针 有那么一点奇技淫巧存在。

一些基本上手

纯c嘛,万事当然从printf开始,来一段printf基本操作

 1 void PrintTest(){
 2         int a = 23;
 3         //打印一个整数 ,注意这里有陷阱哈 ,如果是一个浮点数35.1并不会输出35 而是0
 4         printf("%d
", a);        
 5             
 6         //纯c里面并不支持string 也不支持include<string>
 7         //string str1("sdfdfdf33444");
 8         //纯c打印字符串
 9         char * str1 = "nihao";
10         printf("%s
", str1);
11         //运算任意一侧有浮点数 运算之前整数操作会被转为浮点数    
12         printf("%f
", 5.0 / 9);
13         printf("%3.2f
", 643.1415926);
14         //%02X 格式化为16进制 比如0x05 不足2位的前面会以0补齐
15         printf("%02X
", 5);
16         printf("Hello world!
");        
17 }
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 一篇关于c语言的大补帖