我试图将一些C++代码转换为C,我遇到了一些问题.如何在结构内部定义函数?
像这样:
typedef struct {
double x, y, z;
struct Point *next;
struct Point *prev;
void act() {sth. to do here};
} Point;
Run Code Online (Sandbox Code Playgroud) 如何在C#中列出压缩文件夹的内容?例如,如何知道压缩文件夹中包含多少项,以及它们的名称是什么?
我想知道volatile关键字与register,const和static关键字的不同用途.我不确定有什么影响,所以我想:
register volatile int T=10;
Run Code Online (Sandbox Code Playgroud)
建议编译器将T存储在寄存器中,并且可以从外部某处修改T的值(OS,硬件,另一个线程)
const volatile int T=10;
Run Code Online (Sandbox Code Playgroud)
程序本身不能修改T,但T可以在代码之外的某处修改.
static volatile int T=10;
Run Code Online (Sandbox Code Playgroud)
如果T是类的数据成员,则意味着类的所有对象具有相同的T值,并且可以从外部的某处修改T.如果T是文件中的全局变量,则其他文件(属于项目的一部分)中的源代码无法访问T,但可以从外部的某个位置访问T. 如果T是函数中的局部变量,一旦它被初始化,它将保留在内存中直到程序结束,并且可以从外部的某个地方进行修改.
我的想法是否正确,任何有经验的C++开发人员都可以提供一个示例,其中上述内容可能在实际应用程序中使用,或者它是非常罕见的?
为什么strlen()不检查NULL?
如果我这样做strlen(NULL),就会出现故障.
试图了解它背后的基本原理(如果有的话).
可能重复:
如何查找sizeof(指向数组的指针)
我正在学习如何在C中创建动态数组,但遇到了一个我无法弄清楚的问题.
如果我使用代码:
int num[10];
for (int i = 0; i < 10; i++) {
num[i] = i;
}
printf("sizeof num = %li\n sizeof num[0] = %li", sizeof(num), sizeof(num[0]));
Run Code Online (Sandbox Code Playgroud)
我得到输出:
sizeof num = 40
sizeof num[0] = 4
Run Code Online (Sandbox Code Playgroud)
这就是我期望发生的事情.但是,如果我malloc数组的大小如下:
int *num;
num = malloc(10 * sizeof(int));
for (int i = 0; i < 10; i++) {
num[i] = i;
}
printf("sizeof num = %li\n sizeof num[0] = %li", sizeof(num), sizeof(num[0]));
Run Code Online (Sandbox Code Playgroud)
然后我得到输出:
sizeof num = 8
sizeof num[0] = 4 …Run Code Online (Sandbox Code Playgroud) 我有一个十六进制浮点常量,我想在我的C程序中直接声明,并避免转换.我相信它必须首先正常化,对吗?我如何规范它并声明它?
// hex constant 0xDE.488631
double val = 0xDE.488631; // Error must have exponent.
double val = 0x0.DE488631p-2; // Pretty sure this is wrong.
Run Code Online (Sandbox Code Playgroud) 因此,我正在创建一个使用Facebook登录的iOS应用。登录屏幕和主屏幕是相同的(使用相同的ViewController),并且在登录后可以调整内容。
从安全和性能的角度来看,什么是最好的适应屏幕的方法?
例如:我应该使用removeFromSuperview()和addSubview(view)还是ishidden = true / false?
所以我的教授给了我们一些代码,他说它应该能够编译,但我得到各种错误,不知道什么是错的,因为我对c没有任何经验.它是一个汇编语言类,我们应该编写汇编代码来匹配c代码正在做的事情.他告诉我们在c中运行程序以了解事物.
#include <stdio.h>
#define SIZE 40
main()
{
int v[SIZE];
register int gap, i, j, temp;
/* Initialize array to random positive integers mod 256 */
for (i = 0; i < SIZE; i++)
v[i] = rand() & 0xFF;
/* Display the unsorted array */
for (i = 0; i < SIZE; i++)
printf(“v[%-d] = %-d\n”, i, v[i]);
/* Sort the array using a shell sort */
for (gap = SIZE / 2; gap > 0; gap /= 2) { …Run Code Online (Sandbox Code Playgroud)