X64论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

热搜: 样本 软件
查看: 52|回复: 1

[交流] C语言和C++的比较

[复制链接]

0

技术

0

魅力

1

原创

略有小成

Rank: 4

积分
1850
人气
49
分享
20

最佳新人

发表于 2022-10-31 13:12:07 | 显示全部楼层 |阅读模式
【前言】
肯定有人和我一样,曾经纠结过
到底是学C还是C++呢?
今天,我将和大家一同测试一下
【运行速度の测试】
关于运行速度的测试,我们就使用@xiaomeng 的算法题来测试吧
不过,这个数字太小了我们就把10000换成10000000吧
--------------------测试要求---------------------
我将会测试6次,然后得到6个数,求平均数

--------------------C++测试---------------------

[C++] 纯文本查看 复制代码
#include <time.h>
#include <cstdio>

bool isPrime(int num) {
    if (num == 2) //2是质数
        return true;
    for (int i = 2; i < num; i++)
        if (num % i == 0)
            return false; //被非1和非自己整除不是质数
    return true;//不满足以上条件返回true
}

int main()
{
    clock_t start = clock();
    for (int j = 9999999; j > 2; j -= 2) //奇数-偶数=奇数,质数(2除外)都是奇数
        if (isPrime(j) == true) { //如果不满足isPrime函数的要求,则不是质数,双重判断
            printf("The biggest prime number in 10000 is %d\n", j);
            break; //退出循环,否则会一直打印质数
        }
    printf("Time %d ms", clock() - start);
}

----------------------结果----------------------
第一次:97ms
第二次:76ms
第三次:61ms
第四次:76ms
第五次:76ms
第六次:64ms
平均值:87ms
注:这里我打开了很多程序,所以速度较慢,正常情况下50ms(±15ms)
--------------------C语言测试-------------------
[C] 纯文本查看 复制代码
#include <time.h>
#include <stdio.h>
#include <stdbool.h>

bool isPrime(int num) {
    if (num == 2) //2是质数
        return true;
    for (int i = 2; i < num; i++)
        if (num % i == 0)
            return false; //被非1和非自己整除不是质数
    return true;//不满足以上条件返回true
}

int main()
{
    clock_t start = clock();
    for (int j = 9999999; j > 2; j -= 2) //奇数-偶数=奇数,质数(2除外)都是奇数
        if (isPrime(j) == true) { //如果不满足isPrime函数的要求,则不是质数,双重判断
            printf("The biggest prime number in 10000 is %d\n", j);
            break; //退出循环,否则会一直打印质数
        }
    printf("Time %d ms", clock() - start);
}

----------------------结果----------------------
第一次:72ms
第二次:59ms
第三次:47ms
第四次:63ms
第五次:47ms
第六次:50ms
平均值:56ms

诶嘿嘿,显然,C语言更胜一筹
【程序大小の测试】
C++:61KB
C:61KB
额。。。
但是事实上,C语言能在几百KB得内存中也能运行,C++也彳亍,不过够呛
【结论】
看似没有结论,但事实上。。。
如果你的学习方向是内核类(DLL,SYS),和硬件开发(arduino,单片只因)C语言可能会更适合你
如果你的学习方向是UI,界面方向,C++会更适合你


评分

参与人数 2经验 +150 人气 +5 原创 +1 收起 理由
JimmyzZZ + 1
Andysun06 + 150 + 5 赞一个!

查看全部评分

既然前路未知,那先做好当下

0

技术

0

魅力

0

原创

略知一二

Rank: 3Rank: 3

积分
300
人气
3
分享
6
发表于 2022-11-18 16:55:15 | 显示全部楼层
c++应为c艹[doge]
(虽然我不会
一名xxs,啥编程都不会(图形化算编程吗?)
https://bugdows-edge.github.io/(个人主页,没有炫耀)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|X64论坛 ( 沪ICP备2020028431号-4 )|网站地图

GMT+8, 2022-12-8 17:04 , Processed in 0.059884 second(s), 9 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表