您正在查看: 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 ...阅读全文
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 ----...阅读全文