C/C++程序设计注意事项 (二)
29. vc编译器对c函数默认的调用方式是_cdecl方式,函数参数按照从右向左的顺序入栈,被调函数出栈即可顺序使用参数。函数调用者负责清除栈中的参数。此方式支持了c标准中的可变参数函数调用。
30. C#的完全基于.net framework (公共语言运行时CLR)的托管代码,其对象内存资源由框架负责管理。使用.net framework托管的代码编译生成中间语言,启动后由框架处理形成机器码,程序的整个声明周期交由框架负责而不是操作系统。这与c++写的非托管代码由操作系统(准确说是c运行时、c++标准库)负责调度是不同的。非托管代码需要手动释放内存资源,而托管是无需也不能干预的。
31. .net framework中80%的托管资源是无需释放的,另外的非托管资源是需要手动释放的(如文件,窗口或网络连接Brush、Pen、Socket、Image)。vs中可于托管代码中使用非托管代码的,如[DllImport("Kernel32")]形式的P-INVOKE平台调用技术即可引入。
32. 应用程序不能直接操作硬件设备,需要借助硬件驱动程序的桥接作用。如usb设备操作过程:应用程序-->win32 api-->usb设备驱动程序-->usb总线驱动程序-->主控制器驱动程序-->主控制器-->外围设备。
33. extern "C"告诉编译器其所修饰的函数或变量是按照c语言方式编译连接的,c++编译后会导致名字不同从而找不到c函数故用了c连接交换符号,同时extern强调了函数或变量作用范围的全局性(多模块使用,一次声明只声明不分配,一次定义,多处使用,拒绝static)。
34. Com组件实现了二进制级的代码复用与共享。
35. 模板函数实例化在编译程序处理函数调用时自动完成;模板类实例化必须程序中显式指定。
36. 显示调用(运行时动态链接)DLL中的函数时明文LoadLibrary("*.dll");GetProcAddress();需要*.dll位于当前目录或系统目录;隐式调用(载入时动态连接)如使用本地函数,使用编译器命令#pragma comment(lib,"*.lib"),*.lib位于工程目录中,*.dll位于可执行文件当前目录。
37. 析构函数尽量写成虚函数,这样便于继承后基类指针对子类对象的多态性表现。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sshhbb/archive/2011/01/27/6166194.aspx
转载于:https://www.cnblogs.com/shanghe/archive/2011/04/15/2017344.html
C/C++程序设计注意事项 (二)相关推荐
- 20155328 《Java程序设计》 实验二(Java面向对象程序设计) 实验报告
20155328 <Java程序设计> 实验二(Java面向对象程序设计) 实验报告 单元测试 一.单元测试和TDD 编程时需理清思路,将编程需求等想好,再开始编.此部分可用伪代码实现. ...
- python程序设计梁勇 百度网盘_20194220 2019-2020-2 《Python程序设计》实验二报告
20194220 2019-2020-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1942 姓名: 梁勇 学号:20194220 实验教师: ...
- 自考c语言程序阅读题,自考C语言程序设计模拟试题二答案.DOC
本资料由广州自考网收集整理,更多自考资料请登录 HYPERLINK "http://www.gzzk.cc" www.gzzk.cc下载 再长的路,一步步也能走完,再短的路,不迈开 ...
- c语言程序设计移动字母,C语言程序设计模拟试题二(含答案)
C语言程序设计模拟试题二(含答案) 1.下列电子邮件地址中正确的是(其中□表示空格) A) Malin&http://www.doczj.com/doc/2969157fa26925c52cc ...
- python实验二报告_20172304 2019-2020-2 《Python程序设计》实验二报告
20172304 2019-2020-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1723 姓名: 段志轩 学号:20172304 实验教师 ...
- java构成对象的三要素_20155237 《JAVA程序设计》实验二(JAVA面向对象程序设计)实验报告...
20155237 <JAVA程序设计>实验二(JAVA面向对象程序设计)实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S ...
- 20145207《Java程序设计》实验二(Java面向对象程序设计)实验报告
<Java程序设计>实验二(Java面向对象程序设计)实验报告 目录 改变 Java面向对象程序设计实验要求 实验成果 课后思考 改变 看了下之前实验二的整体,很搞笑,大图+代码,没了.. ...
- 《Python语言程序设计》实验二
<Python语言程序设计>实验二 一.实验项目:Python语言序列数据结构2 1.字典运算及应用 2.集合运算及应用 3.可迭代对象应用 4.理解并运用内置函数enumerate(), ...
- C#面向对象程序设计课程实验二: 实验名称:Windows 窗体程序
C#面向对象程序设计课程实验二: 实验名称:Windows 窗体程序 实验内容:Windows 窗体程序 一.实验目的及要求 二.实验环境 三.实验内容与步骤 一.设计简单的计算器 3.1.实验内容 ...
最新文章
- android多线程断点续传
- python语言入门n-Python基础语法学习笔记
- Android的Activity生命周期模拟程序及解析
- LeetCode 18 四数之和
- ARMS为深绘智能系统保驾护航
- python快乐数字怎么表达_Python经典面试题:这些面试题你会了吗?
- 2019年普通高等程序员招生统一考试
- Javascript实现二级select联动
- java中的保留n位小数
- jedis操作set_Redis从入门到深入-Java操作Redis(12)
- 编写iPhone应用程序有何不同
- Linux之YUM方式安装SVN
- uni-app 调用安卓 高德sdk获取经纬度(替代 uni.getLocation)
- 如何通过波形解析can总线数据
- Windows - 强力删除文件
- CSS网页布局中易犯的10个小错误
- OS学习笔记-9(清华大学慕课)页面置换算法
- Stardust 案例:制作散景光斑
- 程序员请照顾好自己,周末病魔差点一套带走我。
- mysql 根据经纬度查询距离
热门文章
- python 加快计算速度_python怎么提高计算速度
- insert 数组_Java数组和集合的效率问题
- 【java】Thread.Sleep 与 Thread.onSpinWait
- 【jmx】java jmx 获取 kafka topic的logStart LogEnd信息
- Mac下IDEA安装Protobuf插件
- 05-java向Neo4j添加节点及其关系
- 95-130-350-源码-source-kafka相关-FlinkKafkaProducer
- Java应用线上CPU飙高
- Spark-submit诡异问题之:ERROR XJ040: Failed to start database 'metastore_db'
- spring cloud 和 dubbo 各自的优缺点