title: C - fastest method to swap two memory blocks of equal size?
body: <p>What is the fastest way to swap two non-overlapping memory areas of equal size? Say, I need to swap <code>(t_Some *a)</code> with <code>(t_Some *b)</code>. Considering space-time trade-off, will increased temporary space improve the speed? For example, <code>(char *tmp)</code> vs <code>(int *tmp)</code>? I am looking for a portable solution.</p>
  
  <p>Prototype:</p>
  
  <pre><code>void swap_elements_of_array(void* base, size_t size_of_element, int a, int b);
  </code></pre>