Pebble SDK - 带字符串的结构数组(可能还有指针)
Pebble SDK - Arrays of Structs with Strings (and probably pointers too)
首先道歉,因为我认为这个问题涵盖了一些相当常见的主题,但我之前没有找到这个特定的组合,我正在兜圈子试图拼凑信息/答案.
总之...
我正在尝试为我的 Pebble 编写一个在健身房使用的应用程序。
想法是您可以在手表中进行一系列锻炼,select您的锻炼然后您将能够循环进行锻炼,查看代表/重量并开始休息期这将触发一个计时器。
我很久以前就用过一点点 C(主要是嵌入式的东西),但我一生的大部分时间都在 TCL / Python / Javascript 和一些 Java 我在理解 C 的基本本质时遇到了一些麻烦。
长期目标是拥有一个配套的 Android 应用程序,您可以使用它来设置锻炼,但现在我很乐意将数据硬编码到其中,只要基础数据结构格式正确。
这是我目前的攻击路线:
#include <pebble.h>
struct Set {
int reps;
int weight;
};
struct Exercise {
char desc[32];
int rest;
int num_sets;
struct Set sets[];
};
struct Workout {
char desc[32];
int num_exercises;
struct Exercise exercises[];
};
struct Workout workouts[3];
strcpy(workouts[0].desc, "Shoulders");
strcpy(workouts[1].desc, "Back");
strcpy(workouts[2].desc, "Chest");
但是编译失败,出现以下错误:
../src/c/workouts.h:27:8:错误:预期的声明说明符或 'workouts' 之前的“...”
../src/c/workouts.h:27:26: 错误:字符串常量前需要声明说明符或“...”
../src/c/workouts.h:28:8: 错误:预期的声明说明符或 'workouts' 之前的“...”
../src/c/workouts.h:28:26: 错误:预期的声明说明符或字符串常量之前的“...”
../src/c/workouts.h:29:8: 错误:预期的声明说明符或 'workouts' 之前的“...”
../src/c/workouts.h:29:26: 错误:字符串常量
前需要声明说明符或“...”
第 27 行是第一个 strcpy
我想另一种选择是拥有一个包含大量分隔字段的海量数据 blob,然后以这种方式翻阅它:
char workouts[1024]
workouts = "W=Shoulders|Press|8x25kg|6x30kg|4x35kg|40s|..."
这看起来有点难看,但如果我需要将数据来回传递到 Android 应用程序可能会更容易?
无论如何 - 感谢您的帮助!
马克
在 C 中,所有执行都必须在函数内进行。尝试用 strcpy() 替换你的行:
int main() {
strcpy(workouts[0].desc, "Shoulders");
strcpy(workouts[1].desc, "Back");
strcpy(workouts[2].desc, "Chest");
return 0;
}
您可能还想包括 string.h
首先道歉,因为我认为这个问题涵盖了一些相当常见的主题,但我之前没有找到这个特定的组合,我正在兜圈子试图拼凑信息/答案.
总之...
我正在尝试为我的 Pebble 编写一个在健身房使用的应用程序。
想法是您可以在手表中进行一系列锻炼,select您的锻炼然后您将能够循环进行锻炼,查看代表/重量并开始休息期这将触发一个计时器。
我很久以前就用过一点点 C(主要是嵌入式的东西),但我一生的大部分时间都在 TCL / Python / Javascript 和一些 Java 我在理解 C 的基本本质时遇到了一些麻烦。
长期目标是拥有一个配套的 Android 应用程序,您可以使用它来设置锻炼,但现在我很乐意将数据硬编码到其中,只要基础数据结构格式正确。
这是我目前的攻击路线:
#include <pebble.h>
struct Set {
int reps;
int weight;
};
struct Exercise {
char desc[32];
int rest;
int num_sets;
struct Set sets[];
};
struct Workout {
char desc[32];
int num_exercises;
struct Exercise exercises[];
};
struct Workout workouts[3];
strcpy(workouts[0].desc, "Shoulders");
strcpy(workouts[1].desc, "Back");
strcpy(workouts[2].desc, "Chest");
但是编译失败,出现以下错误:
../src/c/workouts.h:27:8:错误:预期的声明说明符或 'workouts' 之前的“...” ../src/c/workouts.h:27:26: 错误:字符串常量前需要声明说明符或“...” ../src/c/workouts.h:28:8: 错误:预期的声明说明符或 'workouts' 之前的“...” ../src/c/workouts.h:28:26: 错误:预期的声明说明符或字符串常量之前的“...” ../src/c/workouts.h:29:8: 错误:预期的声明说明符或 'workouts' 之前的“...” ../src/c/workouts.h:29:26: 错误:字符串常量
前需要声明说明符或“...”第 27 行是第一个 strcpy
我想另一种选择是拥有一个包含大量分隔字段的海量数据 blob,然后以这种方式翻阅它:
char workouts[1024]
workouts = "W=Shoulders|Press|8x25kg|6x30kg|4x35kg|40s|..."
这看起来有点难看,但如果我需要将数据来回传递到 Android 应用程序可能会更容易?
无论如何 - 感谢您的帮助!
马克
在 C 中,所有执行都必须在函数内进行。尝试用 strcpy() 替换你的行:
int main() {
strcpy(workouts[0].desc, "Shoulders");
strcpy(workouts[1].desc, "Back");
strcpy(workouts[2].desc, "Chest");
return 0;
}
您可能还想包括 string.h