And*_*ser 2 c calling-convention
我有一个问题列表,我想要探究嵌入式系统编程的候选C技能.我有一个标准问题,也是很多公共问题列表,但我开始认为这是一个糟糕的问题:
"在C中解释或对比传值和传递参考"
我告诉受访者这个问题与C++引用无关,我正在寻找一个向变量和变量传递指针的解释,以及被调用者如何修改指针引用的变量.关于如何将指针传递给结构的解释的额外点更有效.
这是一个问题:在C中真的有"通过引用传递"吗?
被呼叫者的签名清楚地定义了传递的内容.这不像你可以将x或&x传递给函数并让编译器弄清楚要做什么.所以我认为一切都是C传递值,传递引用实际上只是传递一个指针的值.
有什么根本不同的东西
void f(int *xarg);
...
int x;
int *xp = &x;
f(xp);
Run Code Online (Sandbox Code Playgroud)
与
f(&x);
Run Code Online (Sandbox Code Playgroud)
谢谢,安德鲁