小编sch*_*hot的帖子

android中与SMS关联的数据库列数量是多少?

我想通过手机阅读所有信息及其各自的详细信息.为此,我使用这样的Uri:

Uri sms = Uri.parse("content://sms/");
Run Code Online (Sandbox Code Playgroud)

但我不知道数据库中有多少列与此uri相关联.

我想显示以下信息:

  1. 消息类型
  2. 发件人编号
  3. 邮件正文
  4. 时间戳

任何人都可以列举总列名吗?

sms android messages

23
推荐指数
4
解决办法
3万
查看次数

一个好的C等价的STL载体?

我注意到在我们的代码库中的几个地方,我们使用动态扩展数组,即一个与元素计数器和"max elements"值相结合的基本数组.

我想要做的是用通常的数据结构和实用程序函数替换它们,这是出于通常的面向对象的原因.数组元素可以是基本数据类型或结构,我需要快速随机访问元素,最好是类型安全的实现.

所以,基本上,我想使用的是STL向量,但代码库仅限于C89所以我必须提出其他的东西:-)

我给了它一些想法并掀起了这个初稿,只是为了展示我的目标:

/* Type-safe dynamic list in C89 */

#define list_declare(type) typedef struct _##type##_list_t { type * base_array; size_t elements; size_t max_size; } type##_list_t
#define list(type) type##_list_t
#define list_new(type, initial_size) { calloc(initial_size, sizeof(type)), 0, initial_size }
#define list_free(list) free(list.base_array)
#define list_set(list, place, element) if ( list.elements < list.max_size ) { list.base_array[place] = element; } else { /* Array index out of bounds */ }
#define list_add(list, element) if ( list.elements < list.max_size ) { list.base_array[list.elements++] = element; …
Run Code Online (Sandbox Code Playgroud)

c c89

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

C中是否需要typedef?

Typedef对于可移植名称,标记名称(typedef struct foo Foo;)和保持复杂(函数)声明可读(typedef int (*cmpfunc)(const void *, const void *);)非常有用.

但是在C中是否存在真正需要typedef的情况?通过简单地写出派生类型,你无法做到这一点.

澄清一点:我的意思是语言用户,而不是实施者.整个stdint.h是第二类的一个很好的例子.

结论

感谢您的输入.我想我可以总结为:

  • C99库需要typedef来实现(u)intN_t各种类型.
  • 在C89上,你真的想自己使用typedef来创建类似的可移植类型.
  • 使用va_arg宏时可能需要typedef ,但我怀疑你在实践中会遇到这些衍生类型.

c typedef

13
推荐指数
3
解决办法
1797
查看次数

使用正则表达式在php中匹配url模式

我想匹配墙贴中的url链接并用锚标记替换此链接,为此我使用下面的正则表达式.

我想匹配4种类型的网址:

  1. http://example.com
  2. https://example.com
  3. www.example.com
  4. example.com
preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@',
             '<a href="$1">$1</a>', $subject);
Run Code Online (Sandbox Code Playgroud)

此表达式仅匹配前两种类型的URL.

如果我将此表达式用于匹配url模式 '@(www?([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@',那么它只匹配第三种类型的url模式.

如何将所有四种类型的url模式与单个正则表达式匹配?

php regex url

11
推荐指数
2
解决办法
4万
查看次数

分析汇编代码

 $ gcc -O2 -S test.c -----------------------(1)
      .file "test.c"
    .globl accum
       .bss
       .align 4
       .type accum, @object
       .size accum, 4
    accum:
       .zero 4
       .text
       .p2align 2,,3
    .globl sum
       .type sum, @function
    sum:
       pushl %ebp
       movl  %esp, %ebp
       movl  12(%ebp), %eax
       addl  8(%ebp), %eax
       addl  %eax, accum
       leave
       ret
       .size sum, .-sum
       .p2align 2,,3
    .globl main
       .type main, @function
    main:
       pushl %ebp
       movl  %esp, %ebp
       subl  $8, %esp
       andl  $-16, %esp
       subl  $16, %esp
       pushl $11
       pushl $10
       call  sum
       xorl  %eax, …
Run Code Online (Sandbox Code Playgroud)

c assembly

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

为什么单个修订版的SVN转储大于完全转储?

我的存储库是2.5G.转储通道svnadmin dump myrepos > dumpfile是5G.但当我进行转储时,如 svnadmin dump myrepos -r 23785 > rev-23785.dumpfile23785是最年轻的版本,转储超过15G,此时我停止转储.

当只为一个版本请求转储时,为什么结果远大于整个转储?

svn size dump repository svnadmin

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

showbits()函数

在阅读一本名为"Let us C"的书时,我读到了一个showbit()可以显示数字位的函数.没有提到任何特殊的头文件.在互联网上搜索它并没有发现任何有用的东西.有这样的功能吗?我想要打印十进制数的二进制数.否则请给我一个替换功能.谢谢

c bits

5
推荐指数
0
解决办法
9302
查看次数

如何在C99中定义一个内联内部和外部副本的函数

我的库包含一个内部和外部使用的函数.该函数非常小,我希望编译器在调用internal时尝试内联函数.因为函数使用不完整类型的信息,所以外部调用无法内联.所以我的模块也应该总是包含一个带有外部链接的函数的副本.

我想我找到了以下解决方案,但是您希望得到以下建议:

/* stack.h */
struct stack;
extern bool stack_isempty(struct stack *s);

/* stack.c */
#include "stack.h"
struct stack { [...]; int size; };
inline bool stack_isempty(struct stack *s) { return s->size == 0; }
Run Code Online (Sandbox Code Playgroud)

通常我反过来使用内联或仅static inline在头文件中放置一个函数.但正如所解释的那样,这里不可能.

这种方法是否能产生预期的效果?有没有人看到这种方法的任何缺点(它是便携式C99)?

c inline c99 linkage

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

当内部块具有相同的变量声明时,如何访问内部块中的外部块变量?

int main(int argc, char** argv) {
    int i=5;
    {
        int i=7;
        printf("%d\n", i);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我想访问outer i(int i=5)值printf那么它怎么做?

c

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

当我们可以选择将变量设为外部时,为什么我们通过引用传递?

假设我们有一个数组说:

int arr[1000];
Run Code Online (Sandbox Code Playgroud)

我有一个适用于该数组的函数说:

void Func(void);
Run Code Online (Sandbox Code Playgroud)

当我可以将arr [1000]作为main()外部的外部变量时,为什么需要通过引用传递(通过更改void)?

  1. 有什么区别?有什么区别吗?
  2. 为什么人们更喜欢通过引用传递而不是将其作为外部传递?(我自己认为将它制作成外部更容易).

c pointers pass-by-reference

3
推荐指数
2
解决办法
2253
查看次数

标签 统计

c ×7

android ×1

assembly ×1

bits ×1

c89 ×1

c99 ×1

dump ×1

inline ×1

linkage ×1

messages ×1

pass-by-reference ×1

php ×1

pointers ×1

regex ×1

repository ×1

size ×1

sms ×1

svn ×1

svnadmin ×1

typedef ×1

url ×1