小编Nea*_*len的帖子

何时为局部变量分配堆栈空间?

我对以下C代码有疑问:

void my_function()
{
    int i1;
    int j1;

    // Do something...

    if (check_something())
    {
        int i2;
        int j2;

        // Do something else...
    }

    // Do some more stuff...
}
Run Code Online (Sandbox Code Playgroud)

是否有关于何时为i2和j2分配/解除分配堆栈空间或是否依赖于编译器的保证?我希望当i2和j2进入范围时调整堆栈指针,并在它们超出范围时进行调整,但后来认为某些编译器可能只是"优化"整个事物并在嵌套范围内考虑变量.首先输入该功能.

我知道我可以查看我的编译器生成的汇编代码,但是想知道实现是否可以留给编译器.

谢谢!

c stack memory-management

11
推荐指数
2
解决办法
2925
查看次数

滚动可变高度 ComposeView 项目时 RecyclerView 跳转

我有一个RecyclerView托管使用 Jetpack Compose 渲染的项目。物品的高度各不相同。从列表顶部滚动到底部时,滚动很流畅。但是,当滚动回顶部时,当屏幕顶部出现的下一个项目的高度与屏幕顶部的先前项目的高度不同时,列表中的项目会跳转。

每个的布局高度ComposeView设置为WRAP_CONTENT。以前的 XML 布局在两个方向上都能平滑滚动。

我正在使用 Compose 1.2.0 和 RecyclerView 1.3.0-beta01。

有没有办法让两个方向平滑滚动?

更新:我在这里报告了一个错误,并在这里提供了一个演示该问题的示例项目。

android android-recyclerview android-jetpack-compose android-jetpack-compose-layout

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