C/C++ Learning

您正在查看: 2016年2月

inline、__inline、__inline__、__forceinline、__attribute__((always_inline))编译器依赖

1、inline is the keyword, in C++ and C99.2、__inline is a vendor-specific(厂商特定) keyword (e.g. MSVC) for inline function in C, since C89 doesn't have it.3、__inline__ is similar to __inline but is from...阅读全文

gcc优化中的likely和unlikely

#ifdef __GNUC__ #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else #define likely(x) (x) #define unlikely(x) (x) #...阅读全文

输入两个正整数m和n,求其最大公约数和最小公倍数

最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]。程序分析:(1)最小公倍数=输入的两个数之积除...阅读全文

将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于(小于的时候,继续执行循环)n,则说明分解质因数的过程已经结束,另外 打印出即可。(2)但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n.重复执行第二步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。#include<stdio.h> int ...阅读全文

判断101到200之间的素数

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。#include <stdio.h> int main() { int i,j; int count=0; for (i=101; i<=200; i++) { for (j=2; j<i; j...阅读全文

C与C++的10个主要不同点

如上图那样,C++,英文为c plus plus,它是C的超级,C++支持运行大部分C代码,而反过来C却不可以;这里例举了它们之间的主要10个不同点(为了不偏离原本的语意,直接上英文了):1、C follows the procedural programming paradigm while C++ is a multi-paradigm(多范式) language(procedural ...阅读全文

链表问题集锦

链表问题在面试过程中也是很重要也很基础的一部分,链表本身很灵活,很考查编程功底,所以是很值得考的地方。我将复习过程中觉得比较好的链表问题整理了下。下面是本文所要用到链表节点的定义:struct Node{int data; Node* next;};在O(1)时间删除链表节点题目描述:给定链表的头指针和一个节点指针,在O(1)时间删除该节点。[Google面试题]分析:本题与《编程之美》上的...阅读全文

C/C++获取进程常驻内存大小(get the process resident set size )

1、进程内存接口函数2、接口封装实现#if defined(_WIN32) #include <windows.h> #include <psapi.h> #elif defined(__unix__) || defined(__unix) || defined(unix) || (defined(__APPLE__) && defined(__MA...阅读全文

C/C++获取系统物理内存大小

1、各平台调用接口2、接口实现 #if defined(_WIN32) #include <Windows.h> #elif defined(__unix__) || defined(__unix) || defined(unix) || (defined(__APPLE__) && defined(__MACH__)) #include <unistd....阅读全文

如何通过宏来判断处理器类型(How to detect the processor type using compiler predefined macros)

1、ItaniumA.K.A.: IA64 Developer: Intel Processors: Itanium, Itanium 2, Itanium 2 9000/9100/9300, etc. 代码: #if defined(__ia64) || defined(__itanium__) || defined(_M_IA64) /* Itanium ----...阅读全文