memcmp实现方式之一

实现方式:

int ho_memcmp(const void *s1, const void *s2, size_t n) {
    unsigned char *p1, *p2;
    p1 = (unsigned char *)s1;
    p2 = (unsigned char *)s2;

    char c;
    while (!(c = *p1 - *p2) && n--) {
        p1++;
        p2++;
    }   

    return c;
}
时间: 2024-08-02 11:01:52

memcmp实现方式之一的相关文章

Hadoop学习:Map/Reduce初探与小Demo实现

一.    概念知识介绍 Hadoop MapReduce是一个用于处理海量数据的分布式计算框架.这个框架攻克了诸如数据分布式存储.作业调度.容错.机器间通信等复杂问题,能够使没有并行 处理或者分布式计算经验的project师,也能非常轻松地写出结构简单的.应用于成百上千台机器处理大规模数据的并行分布式程序. Hadoop MapReduce基于"分而治之"的思想,将计算任务抽象成map和reduce两个计算过程,能够简单理解为"分散运算-归并结果"的过程.一个 M

leveldb源码分析--Comparator

既然leveldb是一个按Key序组织的LSM-Tree实现,那么对于Key的比较就是非常之重要了,这个Key的比较在leveldb中是Comparator的形式出现的.我们首先来看看Comparator的基本方法有哪些 // 实际的比较函数 virtual int Compare(const Slice& a, const Slice& b) const = 0; // 名称,主要是为了防止建立和读取时使用了不同的Comparator virtual const char* Name()

kobox : dma_s3c.ko -v1 操作寄存器方式操作S3C2440的DMA

平台:TQ2440 linux版本:Linux EmbedSky 3.16.1-svn57 #56 Sat Oct 18 21:46:22 PDT 2014 armv4tl GNU/Linux 目标:v2中改成s3c2410_dma_xxx方式来操作DMA,看这里的寄存器映射是怎么使用系统接口来操作的! #include "dma.h" #define MEM_CPY_NO_DMA 0 #define MEM_CPY_DMA 1 //#define BUF_SIZE (512*1024

[C#]几种Bitmap比较方式

这里选取图片,规格如下: 大小: 关键代码: using System; using System.Diagnostics; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Runtime.InteropServices; namespace ConsoleApplication27 { class Program { static void Main(string[] args)

一个脚本和一个容易疏忽的问题strcmp、strncmp、memcmp的用法【原创】

一个容易疏忽的问题: strcmp.strncmp.memcmp, 对于memcmp进行字符串比较时可能会出现内存重叠的情况 status = strncmp(xdev->product, "MU709", 5); if (!status) {  return -ENODEV; } 一个脚本,用来通过xcb方式下载应用 @echo ... udc download test ... @set path_name=C:\Users\minquan.PAXSZ\Desktop\Q80

memset memcmp memcpy memmove 自己实现

memset memcmp memcpy memmove 自己实现 memset #include <stdio.h> #include <memory.h> #include <assert.h> void* my_memset(void* dest, int c, size_t cnt){ assert(NULL != dest); char *a = (char*)dest; while(cnt-- > 0){ *a++ = c; } return dest

ios遍历模块的方式

方式一:通过mach_vm_region系统API参考代码:https://github.com/davidrhodus/misc/blob/master/iOS-internals/vmmap.c #include <mach/vm_map.h> #include <stdio.h> #include <mach-o/dyld_images.h> /** * vmmap(1) clone for OS X and iOS * ---------------------

angularJs中关于ng-class的三种使用方式说明

在开发中我们通常会遇到一种需求:一个元素在不同的状态需要展现不同的样子. 而在这所谓的样子当然就是改变其css的属性,而实现能动态的改变其属性值,必然只能是更换其class属性 这里有三种方法: 第一种:通过数据的双向绑定(不推荐) 第二种:通过对象数组 第三种:通过key/value 下面简单说下这三种: 第一种:通过数据的双向绑定 实现方式: function changeClass(){   $scope.className = "change2"; } <div clas

配置resin web方式部署项目

写在前面,推荐下载resin4.0.47版本.其它版本没有测试 最近打算做一个小项目,然后容器选用了resin.想通过web提交war文件的方式 进行部署,更新代码也方便. 试了resin最新的版本(目前最新版本为4.0.53),提交war文件到webapps下面都是.tmp文件.百度google一通还是没找到解决办法. 看了下公司用的resin版本,选择4.0.47.下载后发现没最新版本的上传问题. 通过web提交war文件方式步骤如下: 步骤一:修改resin.properties.推荐配置