亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? vdbe.c

?? Trolltech公司發布的基于C++圖形開發環境
?? C
?? 第 1 頁 / 共 5 頁
字號:
** jump to instruction P2.  Otherwise, continue to the next instruction.**** If either operand is NULL (and thus if the result is unknown) then** take the jump if P1 is true.**** If both values are numeric, they are converted to doubles using atof()** and compared for equality that way.  Otherwise the strcmp() library** routine is used for the comparison.  For a pure text comparison** use OP_StrEq.**** If P2 is zero, do not jump.  Instead, push an integer 1 onto the** stack if the jump would have been taken, or a 0 if not.  Push a** NULL if either operand was NULL.*//* Opcode: Ne P1 P2 ***** Pop the top two elements from the stack.  If they are not equal, then** jump to instruction P2.  Otherwise, continue to the next instruction.**** If either operand is NULL (and thus if the result is unknown) then** take the jump if P1 is true.**** If both values are numeric, they are converted to doubles using atof()** and compared in that format.  Otherwise the strcmp() library** routine is used for the comparison.  For a pure text comparison** use OP_StrNe.**** If P2 is zero, do not jump.  Instead, push an integer 1 onto the** stack if the jump would have been taken, or a 0 if not.  Push a** NULL if either operand was NULL.*//* Opcode: Lt P1 P2 ***** Pop the top two elements from the stack.  If second element (the** next on stack) is less than the first (the top of stack), then** jump to instruction P2.  Otherwise, continue to the next instruction.** In other words, jump if NOS<TOS.**** If either operand is NULL (and thus if the result is unknown) then** take the jump if P1 is true.**** If both values are numeric, they are converted to doubles using atof()** and compared in that format.  Numeric values are always less than** non-numeric values.  If both operands are non-numeric, the strcmp() library** routine is used for the comparison.  For a pure text comparison** use OP_StrLt.**** If P2 is zero, do not jump.  Instead, push an integer 1 onto the** stack if the jump would have been taken, or a 0 if not.  Push a** NULL if either operand was NULL.*//* Opcode: Le P1 P2 ***** Pop the top two elements from the stack.  If second element (the** next on stack) is less than or equal to the first (the top of stack),** then jump to instruction P2. In other words, jump if NOS<=TOS.**** If either operand is NULL (and thus if the result is unknown) then** take the jump if P1 is true.**** If both values are numeric, they are converted to doubles using atof()** and compared in that format.  Numeric values are always less than** non-numeric values.  If both operands are non-numeric, the strcmp() library** routine is used for the comparison.  For a pure text comparison** use OP_StrLe.**** If P2 is zero, do not jump.  Instead, push an integer 1 onto the** stack if the jump would have been taken, or a 0 if not.  Push a** NULL if either operand was NULL.*//* Opcode: Gt P1 P2 ***** Pop the top two elements from the stack.  If second element (the** next on stack) is greater than the first (the top of stack),** then jump to instruction P2. In other words, jump if NOS>TOS.**** If either operand is NULL (and thus if the result is unknown) then** take the jump if P1 is true.**** If both values are numeric, they are converted to doubles using atof()** and compared in that format.  Numeric values are always less than** non-numeric values.  If both operands are non-numeric, the strcmp() library** routine is used for the comparison.  For a pure text comparison** use OP_StrGt.**** If P2 is zero, do not jump.  Instead, push an integer 1 onto the** stack if the jump would have been taken, or a 0 if not.  Push a** NULL if either operand was NULL.*//* Opcode: Ge P1 P2 ***** Pop the top two elements from the stack.  If second element (the next** on stack) is greater than or equal to the first (the top of stack),** then jump to instruction P2. In other words, jump if NOS>=TOS.**** If either operand is NULL (and thus if the result is unknown) then** take the jump if P1 is true.**** If both values are numeric, they are converted to doubles using atof()** and compared in that format.  Numeric values are always less than** non-numeric values.  If both operands are non-numeric, the strcmp() library** routine is used for the comparison.  For a pure text comparison** use OP_StrGe.**** If P2 is zero, do not jump.  Instead, push an integer 1 onto the** stack if the jump would have been taken, or a 0 if not.  Push a** NULL if either operand was NULL.*/case OP_Eq:case OP_Ne:case OP_Lt:case OP_Le:case OP_Gt:case OP_Ge: {  Mem *pNos = &pTos[-1];  int c, v;  int ft, fn;  assert( pNos>=p->aStack );  ft = pTos->flags;  fn = pNos->flags;  if( (ft | fn) & MEM_Null ){    popStack(&pTos, 2);    if( pOp->p2 ){      if( pOp->p1 ) pc = pOp->p2-1;    }else{      pTos++;      pTos->flags = MEM_Null;    }    break;  }else if( (ft & fn & MEM_Int)==MEM_Int ){    c = pNos->i - pTos->i;  }else if( (ft & MEM_Int)!=0 && (fn & MEM_Str)!=0 && toInt(pNos->z,&v) ){    c = v - pTos->i;  }else if( (fn & MEM_Int)!=0 && (ft & MEM_Str)!=0 && toInt(pTos->z,&v) ){    c = pNos->i - v;  }else{    Stringify(pTos);    Stringify(pNos);    c = sqliteCompare(pNos->z, pTos->z);  }  switch( pOp->opcode ){    case OP_Eq:    c = c==0;     break;    case OP_Ne:    c = c!=0;     break;    case OP_Lt:    c = c<0;      break;    case OP_Le:    c = c<=0;     break;    case OP_Gt:    c = c>0;      break;    default:       c = c>=0;     break;  }  popStack(&pTos, 2);  if( pOp->p2 ){    if( c ) pc = pOp->p2-1;  }else{    pTos++;    pTos->i = c;    pTos->flags = MEM_Int;  }  break;}/* INSERT NO CODE HERE!**** The opcode numbers are extracted from this source file by doing****    grep '^case OP_' vdbe.c | ... >opcodes.h**** The opcodes are numbered in the order that they appear in this file.** But in order for the expression generating code to work right, the** string comparison operators that follow must be numbered exactly 6** greater than the numeric comparison opcodes above.  So no other** cases can appear between the two.*//* Opcode: StrEq P1 P2 ***** Pop the top two elements from the stack.  If they are equal, then** jump to instruction P2.  Otherwise, continue to the next instruction.**** If either operand is NULL (and thus if the result is unknown) then** take the jump if P1 is true.**** The strcmp() library routine is used for the comparison.  For a** numeric comparison, use OP_Eq.**** If P2 is zero, do not jump.  Instead, push an integer 1 onto the** stack if the jump would have been taken, or a 0 if not.  Push a** NULL if either operand was NULL.*//* Opcode: StrNe P1 P2 ***** Pop the top two elements from the stack.  If they are not equal, then** jump to instruction P2.  Otherwise, continue to the next instruction.**** If either operand is NULL (and thus if the result is unknown) then** take the jump if P1 is true.**** The strcmp() library routine is used for the comparison.  For a** numeric comparison, use OP_Ne.**** If P2 is zero, do not jump.  Instead, push an integer 1 onto the** stack if the jump would have been taken, or a 0 if not.  Push a** NULL if either operand was NULL.*//* Opcode: StrLt P1 P2 ***** Pop the top two elements from the stack.  If second element (the** next on stack) is less than the first (the top of stack), then** jump to instruction P2.  Otherwise, continue to the next instruction.** In other words, jump if NOS<TOS.**** If either operand is NULL (and thus if the result is unknown) then** take the jump if P1 is true.**** The strcmp() library routine is used for the comparison.  For a** numeric comparison, use OP_Lt.**** If P2 is zero, do not jump.  Instead, push an integer 1 onto the** stack if the jump would have been taken, or a 0 if not.  Push a** NULL if either operand was NULL.*//* Opcode: StrLe P1 P2 ***** Pop the top two elements from the stack.  If second element (the** next on stack) is less than or equal to the first (the top of stack),** then jump to instruction P2. In other words, jump if NOS<=TOS.**** If either operand is NULL (and thus if the result is unknown) then** take the jump if P1 is true.**** The strcmp() library routine is used for the comparison.  For a** numeric comparison, use OP_Le.**** If P2 is zero, do not jump.  Instead, push an integer 1 onto the** stack if the jump would have been taken, or a 0 if not.  Push a** NULL if either operand was NULL.*//* Opcode: StrGt P1 P2 ***** Pop the top two elements from the stack.  If second element (the** next on stack) is greater than the first (the top of stack),** then jump to instruction P2. In other words, jump if NOS>TOS.**** If either operand is NULL (and thus if the result is unknown) then** take the jump if P1 is true.**** The strcmp() library routine is used for the comparison.  For a** numeric comparison, use OP_Gt.**** If P2 is zero, do not jump.  Instead, push an integer 1 onto the** stack if the jump would have been taken, or a 0 if not.  Push a** NULL if either operand was NULL.*//* Opcode: StrGe P1 P2 ***** Pop the top two elements from the stack.  If second element (the next** on stack) is greater than or equal to the first (the top of stack),** then jump to instruction P2. In other words, jump if NOS>=TOS.**** If either operand is NULL (and thus if the result is unknown) then** take the jump if P1 is true.**** The strcmp() library routine is used for the comparison.  For a** numeric comparison, use OP_Ge.**** If P2 is zero, do not jump.  Instead, push an integer 1 onto the** stack if the jump would have been taken, or a 0 if not.  Push a** NULL if either operand was NULL.*/case OP_StrEq:case OP_StrNe:case OP_StrLt:case OP_StrLe:case OP_StrGt:case OP_StrGe: {  Mem *pNos = &pTos[-1];  int c;  assert( pNos>=p->aStack );  if( (pNos->flags | pTos->flags) & MEM_Null ){    popStack(&pTos, 2);    if( pOp->p2 ){      if( pOp->p1 ) pc = pOp->p2-1;    }else{      pTos++;      pTos->flags = MEM_Null;    }    break;  }else{    Stringify(pTos);    Stringify(pNos);    c = strcmp(pNos->z, pTos->z);  }  /* The asserts on each case of the following switch are there to verify  ** that string comparison opcodes are always exactly 6 greater than the  ** corresponding numeric comparison opcodes.  The code generator depends  ** on this fact.  */  switch( pOp->opcode ){    case OP_StrEq:    c = c==0;    assert( pOp->opcode-6==OP_Eq );   break;    case OP_StrNe:    c = c!=0;    assert( pOp->opcode-6==OP_Ne );   break;    case OP_StrLt:    c = c<0;     assert( pOp->opcode-6==OP_Lt );   break;    case OP_StrLe:    c = c<=0;    assert( pOp->opcode-6==OP_Le );   break;    case OP_StrGt:    c = c>0;     assert( pOp->opcode-6==OP_Gt );   break;    default:          c = c>=0;    assert( pOp->opcode-6==OP_Ge );   break;  }  popStack(&pTos, 2);  if( pOp->p2 ){    if( c ) pc = pOp->p2-1;  }else{    pTos++;    pTos->flags = MEM_Int;    pTos->i = c;  }  break;}/* Opcode: And * * ***** Pop two values off the stack.  Take the logical AND of the** two values and push the resulting boolean value back onto the** stack. *//* Opcode: Or * * ***** Pop two values off the stack.  Take the logical OR of the** two values and push the resulting boolean value back onto the** stack. */case OP_And:case OP_Or: {  Mem *pNos = &pTos[-1];  int v1, v2;    /* 0==TRUE, 1==FALSE, 2==UNKNOWN or NULL */  assert( pNos>=p->aStack );  if( pTos->flags & MEM_Null ){    v1 = 2;  }else{    Integerify(pTos);    v1 = pTos->i==0;  }  if( pNos->flags & MEM_Null ){    v2 = 2;  }else{    Integerify(pNos);    v2 = pNos->i==0;  }  if( pOp->opcode==OP_And ){    static const unsigned char and_logic[] = { 0, 1, 2, 1, 1, 1, 2, 1, 2 };    v1 = and_logic[v1*3+v2];  }else{    static const unsigned char or_logic[] = { 0, 0, 0, 0, 1, 2, 0, 2, 2 };    v1 = or_logic[v1*3+v2];  }  popStack(&pTos, 2);  pTos++;  if( v1==2 ){    pTos->flags = MEM_Null;  }else{    pTos->i = v1==0;    pTos->flags = MEM_Int;  }  break;}/* Opcode: Negative * * ***** Treat the top of the stack as a numeric quantity.  Replace it** with its additive inverse.  If the top of the stack is NULL** its value is unchanged.*//* Opcode: AbsValue * * ***** Treat the top of the stack as a numeric quantity.  Replace it** with its absolute value. If the top of the stack is NULL** its value is unchanged.*/case OP_Negative:case OP_AbsValue: {  assert( pTos>=p->aStack );  if( pTos->flags & MEM_Real ){    Release(pTos);    if( pOp->opcode==OP_Negative || pTos->r<0.0 ){      pTos->r = -pTos->r;    }    pTos->flags = MEM_Real;  }else if( pTos->flags & MEM_Int ){    Release(pTos);    if( pOp->opcode==OP_Negative || pTos->i<0 ){      pTos->i = -pTos->i;    }    pTos->flags = MEM_Int;  }else if( pTos->flags & MEM_Null ){    /* Do nothing */  }else{    Realify(pTos);    Release(pTos);    if( pOp->opcode==OP_Negative || pTos->r<0.0 ){      pTos->r = -pTos->r;    }    pTos->flags = MEM_Real;  }  break;}/* Opcode: Not * * ***** Interpret the top of the stack as a boolean value.  Replace it** with its complement.  If the top of the stack is NULL its value** is unchanged.*/case OP_Not: {  assert( pTos>=p->aStack );  if( pTos->flags & MEM_Null ) break;  /* Do nothing to NULLs */  Integerify(pTos);  Release(pTos);  pTos->i = !pTos->i;  pTos->flags = MEM_Int;  break;}/* Opcode: BitNot * * ***** Interpret the top of the stack as an value.  Replace it** with its ones-complement.  If the top of the stack is NULL its** value is unchanged.*/case OP_BitNot: {  assert( pTos>=p->aStack );  if( pTos->flags & MEM_Null ) break;  /* Do nothing to NULLs */  Integerify(pTos);  Release(pTos);  pTos->i = ~pTos->i;  pTos->flags = MEM_Int;  break;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久五月婷婷| 天堂av在线一区| 久久精品欧美日韩| 免费成人在线网站| 久久精品视频在线免费观看| 欧美久久久久久久久中文字幕| 美女爽到高潮91| 五月天亚洲婷婷| 色av成人天堂桃色av| 久久亚洲二区三区| 美日韩一级片在线观看| 欧美亚一区二区| 最新中文字幕一区二区三区| 国产一二精品视频| 日韩美女一区二区三区| 日韩av午夜在线观看| 欧美日韩免费电影| 亚洲乱码中文字幕综合| 国产91在线看| 久久久久久日产精品| 美女在线视频一区| 日韩一区和二区| 麻豆成人久久精品二区三区红| 欧美日本在线观看| 图片区小说区区亚洲影院| 欧美视频在线一区二区三区| 亚洲制服丝袜av| 欧美在线免费观看视频| 亚洲一区二区三区在线看| 欧美影院一区二区| 午夜av电影一区| 欧美日韩美少妇| 欧美aaa在线| ww久久中文字幕| 国产大陆a不卡| 国产精品国产三级国产| 99久久99久久精品免费看蜜桃| 中文字幕一区免费在线观看 | 亚洲视频一区在线| 99久久精品国产观看| 一区二区三区在线播放| 精品视频123区在线观看| 五月天丁香久久| 精品国产一区二区三区av性色 | 亚洲一卡二卡三卡四卡无卡久久 | 成人永久免费视频| 亚洲乱码国产乱码精品精98午夜 | 日韩va亚洲va欧美va久久| 欧美日韩国产天堂| 美国十次综合导航| 国产欧美综合在线观看第十页| 99久久久无码国产精品| 夜夜嗨av一区二区三区网页| 欧美一二三区在线| 成人黄色免费短视频| 亚洲在线观看免费| 精品久久人人做人人爽| 成人免费高清视频在线观看| 亚洲一级电影视频| 精品国产免费久久| 色综合久久综合网97色综合| 日本系列欧美系列| 视频精品一区二区| 久久久久国产精品人| 色欲综合视频天天天| 蜜桃视频第一区免费观看| 中文字幕乱码日本亚洲一区二区| 色婷婷综合久久久中文字幕| 日本网站在线观看一区二区三区| 国产视频一区二区在线| 在线观看区一区二| 国产精品一线二线三线| 亚洲一区二区三区四区在线| 久久综合色之久久综合| 欧美日韩在线一区二区| 国产成人aaaa| 日韩成人一区二区三区在线观看| 国产精品成人网| 欧美成人vps| 欧美午夜电影一区| 夫妻av一区二区| 日韩中文字幕麻豆| 成人免费一区二区三区在线观看| 日韩一区二区在线观看| 色婷婷久久99综合精品jk白丝| 韩国中文字幕2020精品| 午夜视频久久久久久| 亚洲三级久久久| 国产欧美日韩亚州综合| 日韩小视频在线观看专区| 在线观看91精品国产入口| 国产成人啪免费观看软件| 另类欧美日韩国产在线| 婷婷久久综合九色综合伊人色| 国产精品久久久久一区二区三区| 日韩精品专区在线影院重磅| 欧美视频在线播放| 91小宝寻花一区二区三区| 成人黄色在线看| 粉嫩av亚洲一区二区图片| 国产综合一区二区| 久色婷婷小香蕉久久| 亚洲18色成人| 亚洲一区二区三区不卡国产欧美| 国产精品欧美综合在线| 久久精品人人爽人人爽| 国产亚洲欧美日韩在线一区| 欧美成人r级一区二区三区| 欧美高清hd18日本| 6080国产精品一区二区| 欧美丰满嫩嫩电影| 欧美放荡的少妇| 欧美一区二区三区日韩| 日韩午夜在线观看视频| 精品蜜桃在线看| 2017欧美狠狠色| 久久综合久久鬼色中文字| 久久综合狠狠综合久久激情| xf在线a精品一区二区视频网站| 精品福利一二区| 亚洲国产激情av| 日韩理论片中文av| 亚洲成人免费在线| 日韩电影在线免费观看| 激情综合网天天干| 粉嫩绯色av一区二区在线观看| 不卡一区二区在线| 欧美在线观看视频在线| 欧美一区二区三区在线| 久久久亚洲国产美女国产盗摄| 国产精品污网站| 久久99深爱久久99精品| 国产精品系列在线观看| 91麻豆国产自产在线观看| 欧美亚洲日本国产| 精品久久久久久久久久久院品网| 久久久久国产精品厨房| 一区二区在线观看av| 日韩精品午夜视频| 国产精品99久久久久久似苏梦涵 | 欧美日韩高清不卡| 精品欧美黑人一区二区三区| 久久久久久久久久久久久久久99 | 久久国产乱子精品免费女| 成人永久aaa| 色婷婷av一区二区三区软件| 欧美一区二区三区小说| 欧美经典三级视频一区二区三区| 亚洲色图在线视频| 免费视频一区二区| 91在线高清观看| 日韩一区二区三区四区| 国产欧美综合在线观看第十页| 亚洲一区二区三区美女| 国产原创一区二区| 日本高清视频一区二区| 精品国产乱码久久| 亚洲国产精品尤物yw在线观看| 久久99国内精品| 91麻豆文化传媒在线观看| 精品国产免费人成电影在线观看四季 | 在线免费观看成人短视频| 日韩三级电影网址| 亚洲女同ⅹxx女同tv| 久久99精品久久久| 欧美性大战xxxxx久久久| 久久精品人人爽人人爽| 视频一区二区国产| 在线观看一区二区精品视频| 国产欧美精品一区aⅴ影院| 亚洲高清免费在线| www.久久精品| 久久―日本道色综合久久| 视频在线观看一区| 欧美主播一区二区三区| 国产日韩v精品一区二区| 日本美女一区二区三区| 在线免费av一区| 亚洲三级在线观看| 成人一区二区三区中文字幕| 欧美tickle裸体挠脚心vk| 爽好多水快深点欧美视频| 色94色欧美sute亚洲线路一久| 国产精品久久久一本精品 | 欧美a级理论片| 欧美精品一级二级| 亚洲成人自拍偷拍| 色久优优欧美色久优优| 国产精品福利一区二区| 国产91精品在线观看| 精品女同一区二区| 久久狠狠亚洲综合| 日韩欧美电影一二三| 蜜臀久久99精品久久久画质超高清| 欧美午夜精品理论片a级按摩| 亚洲精品成人少妇| 欧美三级视频在线播放| 丁香六月综合激情| 国产女人水真多18毛片18精品视频 | 国产精品18久久久久久久网站|