• Re: iPhone企业优惠

    网购能行么

    【 在 moonfish (喜阳阳) 的大作中提到: 】

    :  去店里买,店员会问一些相关信息

    :  【 在 grainbuds 的大作中提到: 】

    :  : 听同事说本人公司就有资格,就是没人操作过,不确定如何操作以及有何限制。

    :  :

    10月17日
  • Re: iPhone企业优惠

    听同事说本人公司就有资格,就是没人操作过,不确定如何操作以及有何限制。

    【 在 keng (坑) 的大作中提到: 】

    :  找这种企业的员工代购啊

    :  【 在 grainbuds (hello) 的大作中提到: 】

    :  :  听说买iPhone可以有企业优惠能便宜一点,如何操作呢

    10月17日
  • iPhone企业优惠

    听说买iPhone可以有企业优惠能便宜一点,如何操作呢

    10月17日
  • python 字节流 解析与写入

    一个python程序与c程序进行数据通信

    比如c程序发送过来一个字节流char[15],按字节顺序共表示1个int,一个str(7位)及一个float。

    python端如何从中解析出这3个数据项,以及如何将任意三个int,str,float组成一个字节流发送出去。

    10月15日
  • 与Python程序ipc同步问题

    一个cpp程序与一个Python程序使用共享内存通信的话,如何同步呢

    10月11日
  • Re: 这样的程序有问题吗

    查了一下资料,是否至少在x86/64下没问题,因为具有strong memory model

    【 在 foliver 的大作中提到: 】

    : 和原子性关系不大,重点得保证test的赋值一定是最后执行。

    : 所以得使用fence。

    09月29日
  • Re: 这样的程序有问题吗

    如何加锁,特别是实时性要求比较高。

    【 在 ble 的大作中提到: 】

    : 用锁很便宜的,甚至有的时候比原子操作都快,为啥不用呢。

    09月28日
  • Re: 这样的程序有问题吗

    好的,我查查资料。

    【 在 foliver 的大作中提到: 】

    : 和原子性关系不大,重点得保证test的赋值一定是最后执行。

    : 所以得使用fence。

    09月28日
  • Re: 这样的程序有问题吗

    好的,我了解一下这个算法

    【 在 ArchLinux 的大作中提到: 】

    : 看着有点像Dekker算法,不同之处是这里只有一个相当于Dekker算法里面turn的共享变量。

    https://en.wikipedia.org/wiki/Dekker's_algorithm

    09月28日
  • Re: 这样的程序有问题吗

    std::atomic<bool> test = false;

    int v;

    线程1

    while(true)

    {

    if (!test)

    {

    v = GetV();

    test = true;

    }

    }

    线程2

    while(true)

    {

    if(test)

    {

    UseV(v);

    test = false;

    }

    }

    修改了一下,这样能解决乱序的问题吗。

    【 在 foliver 的大作中提到: 】

    : 当然有问题。

    : 首先test应该声明为voilate。然后由于指令重排和乱序,test的赋值可能会被提前执行。

    : 如果你想写无锁代码,先理解一下什么是memory fence,以及在C++11中如何实现。

    : ...................

    09月28日
  • 这样的程序有问题吗

    bool test = false; // 如果是std::atomic<bool> test = false 是否可以

    int v;

    线程1

    while(true)

    {

    if (!test)

    {

    v = GetV();

    test = true;

    }

    }

    线程2

    while(true)

    {

    if(test)

    {

    UseV(v);

    test = false;

    }

    }

    09月28日
  • Re: 软件bug么

    多谢,我测试了一下,使用fpu,1.8变成了1.7999999523162841,乘完110 之后变成了197.99999475479126,再除以11后就是17.999999523162841,最终取整就成了17。

    而使用sse后乘的结果是198.0。

    【 在 foliver (Oliver) 的大作中提到: 】

    :  和寄存器指令有关最开始。

    :  最开始浮点数都是fpu计算,fpu寄存器都是80bits大小,不管float还是double,没有区别,指令也一样。

    :  后来2000年前后,intel推广sse,引入xmm寄存器,遵从float/double的大小,使用不同的指令。这时的float才是真float。

    09月18日
  • Re: 软件bug么

    哦,学习了

    【 在 z16166 (Netguy) 的大作中提到: 】

    :  因为VS2005用的是基本浮点指令的问题吧

    :  单步跟进_ftol2_sse()这个内部看最终执行的是什么"浮点 -> 整数"的转换指令,如果是cvttsd2si,结果就是17。

    :  VS2019用的是SSE指令,和基本浮点指令的计算精度可能不同。这个网站直接能看汇编

    09月18日
  • Re: 软件bug么

    x86 debug:

    push ebp

    mov ebp, esp

    sub esp, 216 ; 000000d8H

    push ebx

    push esi

    push edi

    lea edi, DWORD PTR [ebp-216]

    mov ecx, 54 ; 00000036H

    mov eax, -858993460 ; ccccccccH

    rep stosd

    fld    DWORD PTR __real@3fe66666

    fstp    DWORD PTR _a$[ebp]

    fld    DWORD PTR _a$[ebp]

    fmul    QWORD PTR __real@405b800000000000

    fdiv    QWORD PTR __real@4026000000000000

    call    __ftol2_sse

    mov    DWORD PTR _b$[ebp], eax

    x86 release:

    push    17                    ; 00000011H

    push    OFFSET ??_C@_03PMGGPEJJ@?$CFd?6?$AA@

    【 在 z16166 的大作中提到: 】

    : 看汇编代码

    09月17日
  • 软件bug么

    下面这段代码:

    float a = 1.8;

    int b = 110 * a / 11;

    在 visual studio 2005下面 32位编译时 b的值为17。

    换成64位编译为18。

    09月17日
  • 使用bind的问题

    对于重载的同名函数,使用bind时会报错,这种情况如何解决。

    09月01日
  • Re: 这么操作不行么?

    好的,谢谢

    【 在 here080 (hero080) 的大作中提到: 】

    :  我还是会建议所有要当成编译期常量的东西都用constexpr修饰。

    :  加上static有另一层好处,相当手动优化了这个类的大小。

    :  【 在 ziqin (子青|会挽雕弓如满月|西北望|射天狼) 的大作中提到: 】

    :  : 标  题: Re: 这么操作不行么?

    08月25日
  • Re: 这么操作不行么?

    谢谢,是个知识盲点。

    【 在 foliver (Oliver) 的大作中提到: 】

    :  写到函数不管main, 还是其他函数, 都是编译期间初始化,但是你写到函数参数里面就不行了。

    :  【 在 grainbuds 的大作中提到: 】

    08月25日
  • Re: 这么操作不行么?

    明白了,谢谢

    【 在 ziqin (子青|会挽雕弓如满月|西北望|射天狼) 的大作中提到: 】

    :  data member 是运行时的,你写成

    :  class Test

    :  {

    08月25日
  • Re: 这么操作不行么?

    那为啥在main里面这么写就行?

    【 在 foliver (Oliver) 的大作中提到: 】

    :  const仅仅代表在它上生存期内不可变,但它的初始化过程依然和普通变量一样。比如你的例子,它的初始值是在创建对象时决定的,可以初始化为任何值,你给5只是默认值。所以size的值在编译期是不可知的。

    :  而static就是编译期间就进行初始化。

    08月25日