您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GET2函数代码示例

51自学网 2021-06-01 20:50:32
  C++
这篇教程C++ GET2函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中GET2函数的典型用法代码示例。如果您正苦于以下问题:C++ GET2函数的具体用法?C++ GET2怎么用?C++ GET2使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了GET2函数的26个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: GET2

char *parse_mesocyclone (char *buf, NIDS_mesocyclone *c) {	c->x_start = GET2(buf);	c->y_start = GET2(buf + 2);	c->radius = GET2(buf + 4);		return buf + 6;}
开发者ID:winkey,项目名称:libNIDS,代码行数:7,


示例2: GET2

char *parse_raster_header(char *buf, NIDS_raster *r) {	int i;	char *p;		r->op_flags1 = GET2(buf);	r->op_flags2 = GET2(buf + 2);	r->x_start = GET2(buf + 4);	r->y_start = GET2(buf + 6);	r->x_scale_int = GET2(buf + 8);	r->x_scale_fract = GET2(buf + 10);	r->y_scale_int = GET2(buf + 12);	r->y_scale_fract = GET2(buf + 14);	r->num_rows = GET2(buf + 16);	r->packing = GET2(buf + 18);		if (!(r->rows = malloc(r->num_rows * sizeof(NIDS_raster_row))))		ERROR("parse_radial_header");		p = buf + 20;		for (i = 0 ; i < r->num_rows ; i++) {		p = parse_raster_row(p, r->rows + i);	}		return p;}
开发者ID:winkey,项目名称:libNIDS,代码行数:26,


示例3: get_first_set

static intget_first_set(const pcre16 *code, PCRE_SPTR16 stringname, int *ovector)#endif{const REAL_PCRE *re = (const REAL_PCRE *)code;int entrysize;pcre_uchar *entry;#ifdef COMPILE_PCRE8char *first, *last;#elsePCRE_UCHAR16 *first, *last;#endif#ifdef COMPILE_PCRE8if ((re->options & PCRE_DUPNAMES) == 0 && (re->flags & PCRE_JCHANGED) == 0)  return pcre_get_stringnumber(code, stringname);entrysize = pcre_get_stringtable_entries(code, stringname, &first, &last);#elseif ((re->options & PCRE_DUPNAMES) == 0 && (re->flags & PCRE_JCHANGED) == 0)  return pcre16_get_stringnumber(code, stringname);entrysize = pcre16_get_stringtable_entries(code, stringname, &first, &last);#endifif (entrysize <= 0) return entrysize;for (entry = (pcre_uchar *)first; entry <= (pcre_uchar *)last; entry += entrysize)  {  int n = GET2(entry, 0);  if (ovector[n*2] >= 0) return n;  }return GET2(entry, 0);}
开发者ID:3rdpaw,项目名称:MdCharm,代码行数:30,


示例4: GET2

char *parse_linked_vector(char *buf, NIDS_vector *v, int x_start, int y_start) {		v->x_start = x_start;	v->y_start = y_start;	v->x_end = GET2(buf);	v->y_end = GET2(buf + 2);	return buf + 4;}
开发者ID:winkey,项目名称:libNIDS,代码行数:9,


示例5: GET2

char *parse_hail (char *buf, NIDS_hail *h) {	h->x_start = GET2(buf);	h->y_start = GET2(buf + 2);	h->prob = GET2(buf + 4);	h->severe = GET2(buf + 6);	h->max_size = GET2(buf + 8);		return buf + 10;}
开发者ID:winkey,项目名称:libNIDS,代码行数:10,


示例6: zft_ftape_extract_file_marks

void zft_ftape_extract_file_marks(__u8* address){	int i;	TRACE_FUN(ft_t_any);		zft_eof_map = NULL;	if (ft_format_code == fmt_var || ft_format_code == fmt_big) {		__u8* end;		__u8* start = ftape_find_end_of_bsm_list(address);		zft_nr_eof_marks = 0;		if (start) {			start += 3; /* skip end of list mark */			end = find_end_of_eof_list(start, 						   address + FT_SEGMENT_SIZE);			if (end && end - start <= FT_FSL_SIZE) {				zft_nr_eof_marks = ((end - start) / 						    sizeof(eof_mark_union));				zft_eof_map = (eof_mark_union *)start;			} else {				TRACE(ft_t_err,				      "EOF Mark List is too long or damaged!");			}		} else {			TRACE(ft_t_err, 			      "Bad Sector List is too long or damaged !");		}	} else {		zft_eof_map = (eof_mark_union *)&address[FT_FSL];		zft_nr_eof_marks = GET2(address, FT_FSL_CNT);	}	TRACE(ft_t_noise, "number of file marks: %d", zft_nr_eof_marks);	if (ftape_fmt_version == 1) {		TRACE(ft_t_info, "swapping version 1 fields");		/* version 1 format uses swapped sector and segment		 * fields, correct that !  		 */		for (i = 0; i < zft_nr_eof_marks; ++i) {			__u16 tmp = GET2(&zft_eof_map[i].mark.segment,0);			PUT2(&zft_eof_map[i].mark.segment, 0, 			     GET2(&zft_eof_map[i].mark.date,0));			PUT2(&zft_eof_map[i].mark.date, 0, tmp);		}	}	for (i = 0; i < zft_nr_eof_marks; ++i) {		TRACE(ft_t_noise, "eof mark: %5d/%2d",			GET2(&zft_eof_map[i].mark.segment, 0), 			GET2(&zft_eof_map[i].mark.date,0));	}	TRACE_EXIT;}
开发者ID:jameshilliard,项目名称:actiontec_opensrc_mi424wr-rev-e-f_fw-20-10-7-5,代码行数:51,


示例7: step4

static void step4(int *ix, int *mdist, mat_t mstar, mat_t nmstar,		  mat_t mprime, col_t ccol, col_t crow, int nrows, int ncols,		  int dmin, int row, int col){	int n, rstar, cstar, primeRow, primeCol;	/* generate temporary copy of mstar */	memcpy(nmstar, mstar, sizeof(mat_t));	/* star current zero */	SET2(nmstar, row, col);	/* find starred zero in current column */	cstar = col;	for (rstar = 0; rstar < nrows; rstar++)		if (GET2(mstar, rstar, cstar))			break;	while (rstar < nrows) {		/* unstar the starred zero */		CLEAR2(nmstar, rstar, cstar);		/* find primed zero in current row */		primeRow = rstar;		for (primeCol = 0; primeCol < ncols; primeCol++)			if (GET2(mprime, primeRow, primeCol))				break;		/* star the primed zero */		SET2(nmstar, primeRow, primeCol);		/* find starred zero in current column */		cstar = primeCol;		for (rstar = 0; rstar < nrows; rstar++)			if (GET2(mstar, rstar, cstar))				break;	}	/* use temporary copy as new mstar */	/* delete all primes, uncover all rows */	memcpy(mstar, nmstar, sizeof(mat_t));	memset(mprime, 0, sizeof(mat_t));	memset(crow, 0, sizeof(col_t));	/* move to step 2a */	step2a(ix, mdist, mstar, nmstar,	       mprime, ccol, crow, nrows, ncols,	       dmin);}
开发者ID:scottferg,项目名称:xorg-multitouch,代码行数:49,


示例8: ctltrans

static longctltrans(Ep *ep, uchar *req, long n){	Hostchan *hc;	Epio *epio;	Block *b;	uchar *data;	int datalen;	epio = ep->aux;	if(epio->cb != nil){		freeb(epio->cb);		epio->cb = nil;	}	if(n < Rsetuplen)		error(Ebadlen);	if(req[Rtype] & Rd2h){		datalen = GET2(req+Rcount);		if(datalen <= 0 || datalen > Maxctllen)			error(Ebadlen);		/* XXX cache madness */               	epio->cb = b = allocb(ROUND(datalen, ep->maxpkt) + CACHELINESZ);               	b->wp = (uchar*)ROUND((uintptr)b->wp, CACHELINESZ);		//epio->cb = b = allocb(ROUND(datalen, ep->maxpkt));		//assert(((uintptr)b->wp & (BLOCKALIGN-1)) == 0);		memset(b->wp, 0x55, b->lim - b->wp);		cachedwbinvse(b->wp, b->lim - b->wp);		data = b->wp;	}else{		b = nil;		datalen = n - Rsetuplen;		data = req + Rsetuplen;	}	hc = chanalloc(ep);	if(waserror()){		chanrelease(ep, hc);		if(strcmp(up->env->errstr, Estalled) == 0)			return 0;		nexterror();	}	chansetup(hc, ep);	chanio(ep, hc, Epout, SETUP, req, Rsetuplen);	if(req[Rtype] & Rd2h){		if(ep->dev->hub <= 1){			ep->toggle[Read] = DATA1;			b->wp += multitrans(ep, hc, Read, data, datalen);		}else			b->wp += chanio(ep, hc, Epin, DATA1, data, datalen);		chanio(ep, hc, Epout, DATA1, nil, 0);		n = Rsetuplen;	}else{		if(datalen > 0)			chanio(ep, hc, Epout, DATA1, data, datalen);		chanio(ep, hc, Epin, DATA1, nil, 0);		n = Rsetuplen + datalen;	}	chanrelease(ep, hc);	poperror();	return n;}
开发者ID:Mekapaedia,项目名称:inferno-rpi,代码行数:60,


示例9: pcre32_get_stringnumber

PCRE_EXP_DEFN int PCRE_CALL_CONVENTIONpcre32_get_stringnumber(const pcre32 *code, PCRE_SPTR32 stringname)#endif{int rc;int entrysize;int top, bot;pcre_uchar *nametable;#ifdef COMPILE_PCRE8if ((rc = pcre_fullinfo(code, NULL, PCRE_INFO_NAMECOUNT, &top)) != 0)  return rc;if (top <= 0) return PCRE_ERROR_NOSUBSTRING;if ((rc = pcre_fullinfo(code, NULL, PCRE_INFO_NAMEENTRYSIZE, &entrysize)) != 0)  return rc;if ((rc = pcre_fullinfo(code, NULL, PCRE_INFO_NAMETABLE, &nametable)) != 0)  return rc;#endif#ifdef COMPILE_PCRE16if ((rc = pcre16_fullinfo(code, NULL, PCRE_INFO_NAMECOUNT, &top)) != 0)  return rc;if (top <= 0) return PCRE_ERROR_NOSUBSTRING;if ((rc = pcre16_fullinfo(code, NULL, PCRE_INFO_NAMEENTRYSIZE, &entrysize)) != 0)  return rc;if ((rc = pcre16_fullinfo(code, NULL, PCRE_INFO_NAMETABLE, &nametable)) != 0)  return rc;#endif#ifdef COMPILE_PCRE32if ((rc = pcre32_fullinfo(code, NULL, PCRE_INFO_NAMECOUNT, &top)) != 0)  return rc;if (top <= 0) return PCRE_ERROR_NOSUBSTRING;if ((rc = pcre32_fullinfo(code, NULL, PCRE_INFO_NAMEENTRYSIZE, &entrysize)) != 0)  return rc;if ((rc = pcre32_fullinfo(code, NULL, PCRE_INFO_NAMETABLE, &nametable)) != 0)  return rc;#endifbot = 0;while (top > bot)  {  int mid = (top + bot) / 2;  pcre_uchar *entry = nametable + entrysize*mid;  int c = STRCMP_UC_UC((pcre_uchar *)stringname,    (pcre_uchar *)(entry + IMM2_SIZE));  if (c == 0) return GET2(entry, 0);  if (c > 0) bot = mid + 1; else top = mid;  }return PCRE_ERROR_NOSUBSTRING;}
开发者ID:RobertAcksel,项目名称:poco,代码行数:53,


示例10: buildixvector

static void buildixvector(int *ix, mat_t mstar, int nrows, int ncols){	int row, col;	for (row = 0; row < nrows; row++) {		for (col = 0; col < ncols; col++) {			if (GET2(mstar, row, col)) {				ix[row] = col;				break;			}		}	}}
开发者ID:scottferg,项目名称:xorg-multitouch,代码行数:12,


示例11: getrxctl

static intgetrxctl(Dev *d){	uchar buf[2];	int r;	memset(buf, 0, sizeof(buf));	if(asixget(d, Crrxctl, buf, sizeof(buf)) < 0)		return -1;	r = GET2(buf);	deprint(2, "%s: rxctl %#x/n", argv0, r);	return r;}
开发者ID:99years,项目名称:plan9,代码行数:13,


示例12: GET2

void ProxyConfPrivate::readProxyData(){    /* Read the proxy settings from /system/proxy* */    GET2(http_proxy, host, String);    GET2(http_port, port, Int);    GET2(ignore_hosts, ignore_hosts, List);    GET(mode, String);    GET(autoconfig_url, String);    GET(secure_host, String);    GET(secure_port, Int);    GET(ftp_host, String);    GET(ftp_port, Int);    GET(socks_host, String);    GET(socks_port, Int);    GET(rtsp_host, String);    GET(rtsp_port, Int);    if (http_proxy.isEmpty())        use_http_host = false;    else        use_http_host = true;}
开发者ID:cdaffara,项目名称:symbiandump-mw3,代码行数:23,


示例13: checkhubstatus

/* * This may be used to detect overcurrent on the hub */static voidcheckhubstatus(Hub *h){	uint8_t buf[4];	int sts;	if(h->isroot)	/* not for root hubs */		return;	if(usbcmd(h->dev, Rd2h|Rclass|Rdev, Rgetstatus, 0, 0, buf, 4) < 0){		dprint(2, "%s: get hub status: %r/n", h->dev->dir);		return;	}	sts = GET2(buf);	dprint(2, "hub %s: status %#x/n", h->dev->dir, sts);}
开发者ID:elbing,项目名称:harvey,代码行数:18,


示例14: step3

static void step3(int *ix, int *mdist, mat_t mstar, mat_t nmstar,		  mat_t mprime, col_t ccol, col_t crow, int nrows, int ncols,		  int dmin){	int zerosFound;	int row, col, cstar;	zerosFound = 1;	while (zerosFound) {		zerosFound = 0;		for (col = 0; col < ncols; col++) {			if (GET1(ccol, col))				continue;			for (row = 0; row < nrows; row++) {				if (mdist[row + nrows * col] != 0)					continue;				if (GET1(crow, row))					continue;				/* prime zero */				SET2(mprime, row, col);				/* find starred zero in current row */				for (cstar = 0; cstar < ncols; cstar++)					if (GET2(mstar, row, cstar))						break;				if (cstar == ncols) { /* no starred zero */					/* move to step 4 */					step4(ix, mdist, mstar, nmstar,					      mprime, ccol, crow, nrows, ncols,					      dmin, row, col);					return;				} else {					SET1(crow, row);					CLEAR1(ccol, cstar);					zerosFound = 1;					break;				}			}		}	}	/* move to step 5 */	step5(ix, mdist, mstar, nmstar,	      mprime, ccol, crow, nrows, ncols,	      dmin);}
开发者ID:scottferg,项目名称:xorg-multitouch,代码行数:48,


示例15: miiread

static intmiiread(Dev *d, int phy, int reg){	int r;	uchar v[2];	r = Rd2h|Rvendor|Rdev;	if(usbcmd(d, r, Crmii, phy, reg, v, 2) < 0){		dprint(2, "%s: miiwrite: %r/n", argv0);		return -1;	}	r = GET2(v);	if(r == 0xFFFF)		return -1;	return r;}
开发者ID:99years,项目名称:plan9,代码行数:16,


示例16: eepromread

static inteepromread(Dev *d, int i){	int r;	int ec;	uchar buf[2];	r = Rd2h|Rvendor|Rdev;	ec = usbcmd(d, r, Creeprom, i, 0, buf, sizeof(buf));	if(ec < 0)		deprint(2, "%s: eepromread %d: %r/n", argv0, i);	ec = GET2(buf);	deprint(2, "%s: eeprom %#x = %#x/n", argv0, i, ec);	if(ec == 0xFFFF)		ec = -1;	return ec;}
开发者ID:99years,项目名称:plan9,代码行数:17,


示例17: GET2

char *parse_etvs_header(char *buf, NIDS_etvss *p) {	int i;	char *ptr;		p->length = GET2(buf);	p->num_points = p->length / 4;		if (!(p->points = malloc(p->num_points * sizeof(NIDS_point))))		ERROR("parse_etvs_header");		ptr = buf + 2;		for (i = 0 ; i < p->num_points ; i++) {		ptr = parse_point(ptr, p->points + i);	}		return ptr;}
开发者ID:winkey,项目名称:libNIDS,代码行数:18,


示例18: pcre2_substring_nametable_scan

PCRE2_EXP_DEFN int PCRE2_CALL_CONVENTIONpcre2_substring_nametable_scan(const pcre2_code *code, PCRE2_SPTR stringname,  PCRE2_SPTR *firstptr, PCRE2_SPTR *lastptr){uint16_t bot = 0;uint16_t top = code->name_count;uint16_t entrysize = code->name_entry_size;PCRE2_SPTR nametable = (PCRE2_SPTR)((char *)code + sizeof(pcre2_real_code));while (top > bot)  {  uint16_t mid = (top + bot) / 2;  PCRE2_SPTR entry = nametable + entrysize*mid;  int c = PRIV(strcmp)(stringname, entry + IMM2_SIZE);  if (c == 0)    {    PCRE2_SPTR first;    PCRE2_SPTR last;    PCRE2_SPTR lastentry;    lastentry = nametable + entrysize * (code->name_count - 1);    first = last = entry;    while (first > nametable)      {      if (PRIV(strcmp)(stringname, (first - entrysize + IMM2_SIZE)) != 0) break;      first -= entrysize;      }    while (last < lastentry)      {      if (PRIV(strcmp)(stringname, (last + entrysize + IMM2_SIZE)) != 0) break;      last += entrysize;      }    if (firstptr == NULL) return (first == last)?      (int)GET2(entry, 0) : PCRE2_ERROR_NOUNIQUESUBSTRING;    *firstptr = first;    *lastptr = last;    return entrysize;    }  if (c > 0) bot = mid + 1; else top = mid;  }return PCRE2_ERROR_NOSUBSTRING;}
开发者ID:xnsystems,项目名称:kpcre,代码行数:42,


示例19: local_sieve

int local_sieve(int a, int b) {    int sqr = (int) sqrt(b), gap = b - a;    int *mark2 = (int *) calloc(MAXN, sizeof(int));     for (int i = 0; i < Pt && P[i] <= sqr; i++) {        unsigned p = P[i], base = a / p * p;        while (base < a)    base += p;        if (base == p)    base += p;        for (unsigned j = base; j <= b; j += p)            SET2(j - a);    }    if (a == 1)    SET2(0);    int ret = 0;    for (int i = 0; i <= gap; i++) {        if (!GET2(i))            ret++;    }    free(mark2);    return ret;}
开发者ID:JohnXinhua,项目名称:UVa,代码行数:20,


示例20: mkstr

static char*mkstr(uchar *b, int n){	Rune r;	char *us;	char *s;	char *e;	if(n <= 2 || (n & 1) != 0)		return strdup("none");	n = (n - 2)/2;	b += 2;	us = s = emallocz(n*UTFmax+1, 0);	e = s + n*UTFmax+1;	for(; --n >= 0; b += 2){		r = GET2(b);		s = seprint(s, e, "%C", r);	}	return us;}
开发者ID:vrthra,项目名称:9front-tmp,代码行数:20,


示例21: portstatus

static intportstatus(Hub *h, int p){	Dev *d;	uint8_t buf[4];	int t;	int sts;	int dbg;	dbg = usbdebug;	if(dbg != 0 && dbg < 4)		usbdebug = 1;	/* do not be too chatty */	d = h->dev;	t = Rd2h|Rclass|Rother;	if(usbcmd(d, t, Rgetstatus, 0, p, buf, sizeof(buf)) < 0)		sts = -1;	else		sts = GET2(buf);	usbdebug = dbg;	return sts;}
开发者ID:elbing,项目名称:harvey,代码行数:21,


示例22: step2a

static void step2a(int *ix, int *mdist, mat_t mstar, mat_t nmstar,		   mat_t mprime, col_t ccol, col_t crow, int nrows, int ncols,		   int dmin){	int col, row;	/* cover every column containing a starred zero */	for (col = 0; col < ncols; col++) {		for (row = 0; row < nrows; row++) {			if (!GET2(mstar, row, col))				continue;			SET1(ccol, col);			break;		}	}	/* move to step 3 */	step2b(ix, mdist, mstar, nmstar,	       mprime, ccol, crow, nrows, ncols,	       dmin);}
开发者ID:scottferg,项目名称:xorg-multitouch,代码行数:21,


示例23: smscinit

intsmscinit(Dev *d){	if(!doreset(d, Hwcfg, Lrst) || !doreset(d, Pmctrl, Phyrst))		return -1;	if(!setmac)		if(eepromr(d, MACoffset, macaddr, 6) < 0)			return -1;	wr(d, Addrl, GET4(macaddr));	wr(d, Addrh, GET2(macaddr+4));	if(Doburst){		wr(d, Hwcfg, (rr(d,Hwcfg)&~Rxdoff)|Bir|Mef|Bce);		wr(d, Burstcap, Hsburst);	}else{		wr(d, Hwcfg, (rr(d,Hwcfg)&~(Rxdoff|Mef|Bce))|Bir);		wr(d, Burstcap, 0);	}	wr(d, Bulkdelay, Defbulkdly);	wr(d, Intsts, ~0);	wr(d, Ledgpio, Ledspd|Ledlnk|Ledfdx);	wr(d, Flow, 0);	wr(d, Afccfg, Afcdefault);	wr(d, Vlan1, Ethp8021q);	wr(d, Coecr, rr(d,Coecr)&~(Txcoe|Rxcoe)); /* TODO could offload checksums? */	wr(d, Hashh, 0);	wr(d, Hashl, 0);	wr(d, Maccr, rr(d,Maccr)&~(Prms|Mcpas|Hpfilt));	phyinit(d);	wr(d, Intepctl, rr(d, Intepctl)|Phyint);	wr(d, Maccr, rr(d, Maccr)|Txen|Rxen);	wr(d, Txcfg, Txon);	eptransmit = smsctransmit;	epreceive = smscreceive;	return 0;}
开发者ID:grobe0ba,项目名称:plan9front,代码行数:39,


示例24: pcre2_substring_copy_byname

PCRE2_EXP_DEFN int PCRE2_CALL_CONVENTIONpcre2_substring_copy_byname(pcre2_match_data *match_data, PCRE2_SPTR stringname,  PCRE2_UCHAR *buffer, PCRE2_SIZE *sizeptr){PCRE2_SPTR first, last, entry;int failrc, entrysize;if (match_data->matchedby == PCRE2_MATCHEDBY_DFA_INTERPRETER)  return PCRE2_ERROR_DFA_UFUNC;entrysize = pcre2_substring_nametable_scan(match_data->code, stringname,  &first, &last);if (entrysize < 0) return entrysize;failrc = PCRE2_ERROR_UNAVAILABLE;for (entry = first; entry <= last; entry += entrysize)  {  uint32_t n = GET2(entry, 0);  if (n < match_data->oveccount)    {    if (match_data->ovector[n*2] != PCRE2_UNSET)      return pcre2_substring_copy_bynumber(match_data, n, buffer, sizeptr);    failrc = PCRE2_ERROR_UNSET;    }  }return failrc;}
开发者ID:xnsystems,项目名称:kpcre,代码行数:24,


示例25: store_route

static voidstore_route(struct rt_msghdr *rtm){	u_int i;	struct natm_route *r;	char *cp;	struct sockaddr *sa;	struct sockaddr_in *sain;	struct sockaddr_dl *sdl;	struct diagif *aif;	u_int n;	r = malloc(sizeof(*r));	if (r == NULL)		err(1, "allocate route");	r->flags = rtm->rtm_flags;	cp = (char *)(rtm + 1);	for (i = 1; i != 0; i <<= 1) {		if (rtm->rtm_addrs & i) {			sa = (struct sockaddr *)cp;			cp += roundup(sa->sa_len, sizeof(long));			switch (i) {			  case RTA_DST:				if (sa->sa_family != AF_INET) {					warnx("RTA_DST not AF_INET %u", sa->sa_family);					goto fail;				}				sain = (struct sockaddr_in *)(void *)sa;				if (sain->sin_len < 4)					r->host.s_addr = INADDR_ANY;				else					r->host = sain->sin_addr;				break;			  case RTA_GATEWAY:				if (sa->sa_family != AF_LINK) {					warnx("RTA_GATEWAY not AF_LINK");					goto fail;				}				sdl = (struct sockaddr_dl *)(void *)sa;				TAILQ_FOREACH(aif, &diagif_list, link)					if (strlen(aif->ifname) ==					    sdl->sdl_nlen &&					    strncmp(aif->ifname, sdl->sdl_data,					    sdl->sdl_nlen) == 0)						break;				if (aif == NULL) {					warnx("interface '%.*s' not found",					    sdl->sdl_nlen, sdl->sdl_data);					goto fail;				}				r->aif = aif;				/* parse ATM stuff */#define	GET3()	(((sdl->sdl_data[n] & 0xff) << 16) |	/		 ((sdl->sdl_data[n + 1] & 0xff) << 8) |	/		 ((sdl->sdl_data[n + 2] & 0xff) << 0))#define	GET2()	(((sdl->sdl_data[n] & 0xff) << 8) |	/		 ((sdl->sdl_data[n + 1] & 0xff) << 0))#define	GET1()	(((sdl->sdl_data[n] & 0xff) << 0))				n = sdl->sdl_nlen;				if (sdl->sdl_alen < 4) {					warnx("RTA_GATEWAY alen too short");					goto fail;				}				r->llcsnap = GET1() & ATM_PH_LLCSNAP;				n++;				r->vpi = GET1();				n++;				r->vci = GET2();				n += 2;				if (sdl->sdl_alen == 4) {					/* old address */					r->traffic = ATMIO_TRAFFIC_UBR;					r->pcr = 0;					break;				}				/* new address */				r->traffic = GET1();				n++;				switch (r->traffic) {				  case ATMIO_TRAFFIC_UBR:					if (sdl->sdl_alen >= 5 + 3) {						r->pcr = GET3();						n += 3;					} else						r->pcr = 0;					break;				  case ATMIO_TRAFFIC_CBR:					if (sdl->sdl_alen < 5 + 3) {						warnx("CBR address too short");						goto fail;					}					r->pcr = GET3();//.........这里部分代码省略.........
开发者ID:MattDooner,项目名称:freebsd-west,代码行数:101,


示例26: set_start_bits

//.........这里部分代码省略.........      /* All bits are set. */      if ((tcode[1 + LINK_SIZE] & XCL_MAP) == 0 && (tcode[1 + LINK_SIZE] & XCL_NOT) != 0)        return SSB_FAIL;#endif      /* Fall through */      case OP_NCLASS:#if defined SUPPORT_UTF && defined COMPILE_PCRE8      if (utf)        {        start_bits[24] |= 0xf0;              /* Bits for 0xc4 - 0xc8 */        memset(start_bits+25, 0xff, 7);      /* Bits for 0xc9 - 0xff */        }#endif#if defined COMPILE_PCRE16 || defined COMPILE_PCRE32      SET_BIT(0xFF);                         /* For characters > 255 */#endif      /* Fall through */      case OP_CLASS:        {        pcre_uint8 *map;#if defined SUPPORT_UTF || !defined COMPILE_PCRE8        map = NULL;        if (*tcode == OP_XCLASS)          {          if ((tcode[1 + LINK_SIZE] & XCL_MAP) != 0)            map = (pcre_uint8 *)(tcode + 1 + LINK_SIZE + 1);          tcode += GET(tcode, 1);          }        else#endif          {          tcode++;          map = (pcre_uint8 *)tcode;          tcode += 32 / sizeof(pcre_uchar);          }        /* In UTF-8 mode, the bits in a bit map correspond to character        values, not to byte values. However, the bit map we are constructing is        for byte values. So we have to do a conversion for characters whose        value is > 127. In fact, there are only two possible starting bytes for        characters in the range 128 - 255. */#if defined SUPPORT_UTF || !defined COMPILE_PCRE8        if (map != NULL)#endif          {#if defined SUPPORT_UTF && defined COMPILE_PCRE8          if (utf)            {            for (c = 0; c < 16; c++) start_bits[c] |= map[c];            for (c = 128; c < 256; c++)              {              if ((map[c/8] & (1 << (c&7))) != 0)                {                int d = (c >> 6) | 0xc0;            /* Set bit for this starter */                start_bits[d/8] |= (1 << (d&7));    /* and then skip on to the */                c = (c & 0xc0) + 0x40 - 1;          /* next relevant character. */                }              }            }          else#endif            {            /* In non-UTF-8 mode, the two bit maps are completely compatible. */            for (c = 0; c < 32; c++) start_bits[c] |= map[c];            }          }        /* Advance past the bit map, and act on what follows. For a zero        minimum repeat, continue; otherwise stop processing. */        switch (*tcode)          {          case OP_CRSTAR:          case OP_CRMINSTAR:          case OP_CRQUERY:          case OP_CRMINQUERY:          case OP_CRPOSSTAR:          case OP_CRPOSQUERY:          tcode++;          break;          case OP_CRRANGE:          case OP_CRMINRANGE:          case OP_CRPOSRANGE:          if (GET2(tcode, 1) == 0) tcode += 1 + 2 * IMM2_SIZE;            else try_next = FALSE;          break;          default:          try_next = FALSE;          break;          }        }      break; /* End of bitmap class handling */      }      /* End of switch */    }        /* End of try_next loop */
开发者ID:RobertAcksel,项目名称:poco,代码行数:101,



注:本文中的GET2函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ GET32函数代码示例
C++ GET函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。