text *而不是char *

时间:2011-03-29 15:51:47

标签: c oracle oci

我正在浏览一些使用Oracle OCI的代码,我遇到过一些我以前从未见过的东西。代码是这样的:

text *string;

现在, string 的行为与char *完全相同,但我从未见过数据类型 text

任何人都知道在哪里可以找到声明/定义 text 数据类型的位置?

3 个答案:

答案 0 :(得分:4)

您必须在Oracle文档中查找它。或者,如果您有一个允许您转到定义的IDE,您可以轻松找到定义并自己查找。

C和许多其他语言允许开发人员定义新的数据类型,并且没有中央存储库或通常接受的含义。你需要根据具体情况找出它们的含义。

答案 1 :(得分:3)

您可以递归搜索头文件以获取其定义。它可能类似typedef char text或更不可能#define text char

你没有提到你正在使用的编译器,但是在预处理阶段之后可能会有某种方法停止 - 这将允许你只搜索预处理阶段的输出以获得定义而不是递归搜索所有头文件。在gcc中,您可以使用gcc -E

答案 2 :(得分:3)

谷歌搜索让我登陆http://www.cs.umbc.edu/portal/help/oracle8/server.815/a67846/datatype.htm

我明白了:

#if !defined(LUSEMFC)
# ifdef lint
#  define text unsigned char
# else
   typedef OraText text;
# endif
#endif

#ifdef lint
# define OraText unsigned char
#else
  typedef  unsigned char OraText;
#endif

不确定这与您的情况有多相关......