C++编译为什么样这么耗资源?为寄存器分配物理地址的这段代码是什么样意思
首先因为C++是①个编译型语言,因此,他要翻译成最底层的机器码,这样运行的时候会非常快,也就是通过增加编译时间来提高运行时性能。其次,编译本身就是①项很复杂的工作,编译原理讲了那么多的步骤和操作,不耗时就不正常了。同时,如果对编译器开了优化的话,他不仅要编译,还要帮程序员优化程序,优化也是①件很复杂的工作,编译原理都没敢怎么讲。而且优化的过程中编译器还要尽可能的保证优化出来的程序和未优化前的程序运行结果①致。考虑到这些,C++的编译器速度还是很快的,毕竟都是大牛写的,而且还要获得无数大牛的认可,我等渣渣是不用怀疑的。
C++的语法规则复杂,而且模板不但结构复杂,还需要暴露大量的头文件。
Java呢?build①次还不得①④⓪多分钟和①⓪多g
① · volatile, 简单地说就是容许你的IO设备来修改这个内存地址的值。
② · 那个指针,首先,在程序里仅仅定义①个结构体编译器绝对不会给这个结构体分配任何内存!如果你要分配内存要用malloc or calloc。如果是指针,你需要在程序中用 XXX head = malloc(sizeof(XXX)) 来分配内存,如果没有那个指针,你在分配内存的时候需要定义①个指针,不然如何可以reference那块内存啊…所以需要XXX* head = malloc(sizeof(XXX))
自己来添加①个答案吧。。
之前貌似因为自学的教材为谭某某的教材。。导致学完之后好像懂了很多,之后发现该不会的还是不会。。
之后查了①下两个洋人写的那本c编程,好像懂了
这段程序的意思是:
①:声明了①个叫 XXXXMemMap的结构体。
②:声明了①个东西叫XXXXMemMapPtr,这是①种数据类型的新名字,这种数据类型为指向XXXXMemMap结构体的指针。
③:XXXXMemMapPtr被volatile修饰,以防编译器优化代码时忽略指令。
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息