小编Paw*_*wan的帖子

具有全局范围的 __COUNTER__

如果我们__COUNTER__在两个不同的源文件中使用,该值将重置为零。是否可以将__COUNTER__范围扩大到全球范围?

文件:file1.c

int x=__COUNTER__;

int y=__COUNTER__;
Run Code Online (Sandbox Code Playgroud)

文件:file2.c

int a=__COUNTER__;

int b=__COUNTER__;
Run Code Online (Sandbox Code Playgroud)

我想让所有 x、y、a 和 b 都具有唯一的初始化值。在这种情况下,x=a,y=b。


我还尝试放入__COUNTER__一个通用头文件。结果是一样的。

文件:common.h

#define VALUE __COUNTER__

将上述文件中的所有内容替换__COUNTER__为 VALUE。

c gnu c-preprocessor

5
推荐指数
1
解决办法
1001
查看次数

使用 ffmpeg 精确查找

假设我有一个正在解码的音频文件ffmpeg。源格式类似于AAC将音频拆分为数据包的地方。当寻找特定时间时,很明显,大多数情况下,时间不会落在数据包边界上,而是落在数据包持续时间内的某处。我必须自己在数据包中寻找还是av_seek_frame自己完成这一切并设置解码,以便下一个解码的帧应该从我请求的位置开始?

如果我将函数av_seek_frame与 flag 一起使用AVSEEK_FLAG_BACKWARD,我假设av_read_frame返回的下一个数据包将是包含我正在寻找的时间位置的数据包。那正确吗?

如果我使用avcodec_decode_audio4解码这个数据包,返回的帧是否包含数据包开始时的音频数据,或者从我传递到av_seek_frame的时间开始?在后一种情况下,我如何找出帧/数据包时间戳以估计解码帧中要跳过的样本数?在PTS寻求后是零,DTS看起来无用要么。

是否可以使用 精确搜索特定时间ffmpeg

c audio ffmpeg

5
推荐指数
2
解决办法
4238
查看次数

JavaFX重复系列已添加

我目前正在学习JavaFX,并且正在尝试创建一个显示折线图的应用程序,并允许用户更改某些变量,然后更改绘制的线条.我这样做的方法是删除系列(和系列中的数据点),然后重新填充系列并再次添加它们,如下所示.

    public void plot(double[] xArr, double[] yExactArr, double[] yApproxArr) {
        linePlot.getData().clear();

        if (!exactValues.getData().isEmpty()) {
            exactValues.getData().remove(0, xArr.length - 1);
            approxValues.getData().remove(0, xArr.length - 1);
        }

        for (int i = 0; i < xArr.length; i++) {
            exactValues.getData().add(new XYChart.Data(xArr[i], yExactArr[i]));
            approxValues.getData().add(new XYChart.Data(xArr[i], yApproxArr[i]));
        }


        linePlot.getData().addAll(exactValues, approxValues);
        mainStage.show();
    }
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我收到以下错误:

    Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: Duplicate series added
Run Code Online (Sandbox Code Playgroud)

addAll()第二次调用时就会发生这种情况.当我打印调用后的toString()函数时,它打印一个空数组,所以看起来应该没有问题.我的猜测是,这不是改变线路的正确方法,但这是我的新手尝试.看起来我应该只能更改系列中的数据(不删除和读取它们),但我的情节不会更新.linePlot.getData()clear()

有什么想法/建议吗?

java javafx linechart

4
推荐指数
1
解决办法
2110
查看次数

2-8 K&R C运动有什么不对?

我正在做那个练习

写一个函数rightrot(x,n),它返回由n位位置向右旋转的整数x的值.

但是当我尝试运行它时,我得不到我所期望的.

#include"stdio.h"    
int most_signficant_bit(unsigned x){
        int bitpos;
        for(bitpos = -1; x!=0;++bitpos){
            x=x>>1;
        }
        return bitpos;
    }
unsigned rightrot(unsigned x, unsigned n){
        int bitpos;
        bitpos  = most_signficant_bit(x);

       x = ((x>>n)|(((~(~0<<n))&x)<<(bitpos-n)));
        return x;
    }
int main(int argc, char const *argv[]) {
        unsigned int c1;
        c1 = 0xff1;

        printf("bitfield  %x "
        " after rightrot %x \n",c1, rightrot(c1, 4) );
        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

我知道(x>>n)将位域'n'向右移动0000 1111 1111以从该空间复制'n'个较低有效位.
(~(~0<<n))&x)复制n个较低有效位(1111 1111 0001&0000 0000 1111= 0000 0000 …

c

3
推荐指数
1
解决办法
100
查看次数

当我扩展base.html/for django时,是否可以排除base.html中包含的footer.html

在我的base.html中,我{% include 'footer.html' %}和我将base.html扩展到我的每一页.但对于某些页面,我不希望页脚在那里.是否可以使用某个块关键字排除该页脚?

html django

3
推荐指数
1
解决办法
262
查看次数

如何在退出之前保存线程堆栈?

我正在研究一个多线程项目,我需要在代码中的某个位置复制一个线程的堆栈(我需要一个指向它的指针).因为在退出这个线程后我将需要该指针(并且它的堆栈被释放).如果我能以某种方式告诉pthread_exit()不要释放线程堆栈,它也可以完成这项工作!

PS:这背后的原因是我希望setcontext(ucontext_t*)稍后在这个线程实际死亡时使用.

c linux stack multithreading pthread-exit

1
推荐指数
1
解决办法
136
查看次数