小编kar*_*tik的帖子

C++中的内联函数中的返回语句实际上会返回并终止代码流吗?

我正在阅读C++中的内联函数,主要是我理解的是编译器将复制粘贴内联的函数代码.如果内联函数包含一个return语句,并且该函数在某些其他函数中使用,它会导致调用函数终止并返回吗?

作为一个例子考虑

inline int foo(void) {
return 1;
}

int bar(void) {
//Some statements
foo()
//Some more statements
return 2;
}
Run Code Online (Sandbox Code Playgroud)

因为代码是由编译器复制粘贴的,所以foo()in bar()会在bar到达return 2;行之前返回吗?另外,如何在内联函数中处理return语句?我明白这不会破坏现在的代码流,但如果代码被复制粘贴或内联,如何处理return语句?

c++ inline

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

谁或如何改变处理器模式,CPU状态,CPU权限级别?

我正在阅读Linux设备驱动程序,其中提到内核以特权模式运行,这使得它可以不受限制地访问所有H/W. 如何防止用户程序在此模式下设置CPU?

cpu

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

替换以特定模式开头的行的行尾

我有一个以下格式的文件

--Some-XYZ-code ;
--Somemore--xyz--code;
COMMENT = " THIS IS A DEMO"
--somemore--code;
--somemore--code;
Run Code Online (Sandbox Code Playgroud)

我想在COMMENT行的末尾添加一个分号,保持该行的其余部分不变.

vim

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

函数参数上的 GDB 断点

我们可以在一个函数上设置一个 GDB 断点,这样它只有在函数参数与指定的值匹配时才会中断吗?前任

int foo(int i) {
return i*i;
}

int main() {
  foo(0);
  ................
  foo(9);
}
Run Code Online (Sandbox Code Playgroud)

仅当 foo 的参数 i 为 5 时,如何在 foo 上设置断点?

gdb

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

vim:搜索并替换以特定字符串开头的行

我想替换文件中的特定单词,这个单词出现在很多地方,我有兴趣在行开头或有特定单词时替换它.例如(忽略语法)

All roads lead to Rome.
Be Roman in Rome.
Where are these roads in Rome.
Run Code Online (Sandbox Code Playgroud)

我正在尝试做一些像%s/roads.*Rome/roads.*Italy 包含道路的所有线路和罗马应该将罗马这个词改为意大利.第二行应该没有改变.

regex vim

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

将字符串输入到int会在c/c ++中产生错误的输出

#include <iostream>
#include <string>
using namespace std;

int main()
{
  // Declare a variable to store an integer
  int InputNumber;

  cout << "Enter an integer: ";

  // store integer given user input
  cin >> InputNumber;

  // The same with text i.e. string data
  cout << "Enter your name: ";
  string InputName;
  cin >> InputName;

  cout << InputName << " entered " << InputNumber << endl;

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我为InputNumber输入一些字符串,上面的程序会产生错误的输出,那里发生了什么,我假设分配给Inputnumbe的内存被覆盖但是问题是什么?还给出了样本输出.

correct output
Enter an integer: 123
Enter your name: asdf
asdf …
Run Code Online (Sandbox Code Playgroud)

c++ cout cin

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

在SystemC中为什么不能等待SC_METHOD?

我正在阅读一些关于SystemC的教程,并且提到我们不能在SC_METHOD中等待,它没有解释原因.

systemc

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

TCL/TK 如何将多个参数传递给按钮回调函数?

我有这样的代码

  proc press2 {v sbit} {
                puts $v
                puts $sbit
        }

                   :
                   :
button .t.ok2 -text "OKI" -command "press2 $v $sbit"
Run Code Online (Sandbox Code Playgroud)

有了这个,wrong # args: should be "press2 v sbit" 如果我将其更改为 button .t.ok2 -text "OKI" -command {press2 $v $sbit}I get can't read "v": no such variable,我就会得到错误,最后我尝试button .t.ok2 -text "OKI" -command [press2 $v $sbit]了没有出现任何错误但也不起作用的方法。只是问有没有可用于 TCL/TK 的好的文档?通常的手册页和谷歌搜索对我没有多大帮助。我通过反复试验做很多事情。

tk-toolkit tcl

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

如何将 std::function 的引用值从一个类传递到另一个类

我有以下场景。

File Box.h
#pragma once
#include <functional>

class Box
{
    public:
        Box() :m_data(45) {}
        void set_callback(std::function<int(int, int& c)> cb)
        {
            f = cb;
        }
        auto get_box_dimension(void)
        {
             return f(4,m_data);
        }
    

private:
    std::function<int(int, int&)> f;
    int m_data;
};

File SquareBox.h
#pragma once
#include <functional>

class SquareBox
{
public:
    int sq_func(int a, int& b)
    {
        return a * b;
    }

private:


};

File main.cpp
#include<iostream>
#include<functional>
#include"Box.h"
#include"SquareBox.h"

int main()
{
    int x = 1;
    int a = 5;
    Box b;
    SquareBox …
Run Code Online (Sandbox Code Playgroud)

c++ std-function

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

标签 统计

c++ ×3

vim ×2

cin ×1

cout ×1

cpu ×1

gdb ×1

inline ×1

regex ×1

std-function ×1

systemc ×1

tcl ×1

tk-toolkit ×1